# encoding: utf-8
# module com.just.like.java calls itself java
# from PythonLibs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
# by generator 1.135
# no doc
# no imports

# no functions
# classes

from object import object

class LikeJavaClass(object):
    """ LikeJavaClass() """
    def likeJavaInstanceMethod(self, i):
        """ likeJavaInstanceMethod(self: LikeJavaClass, i: int) -> int """
        pass

    @staticmethod
    def likeJavaStaticMethod(i):
        """ likeJavaStaticMethod(i: int) """
        pass


