如何从另一个类中的类调用方法

时间:2013-10-24 15:36:35

标签: java

我的主要java代码是这样的:

package Javathesis;

//import... etc
//...


public class Javathesis; // My main class

{ 
    public static void // There are a lot of these classes here
    //...
    //...

    class x
    {
        String a;
        String b;

        x(String a, String b)
        {
            this.a = a;
            this.b = b;
        }
    }
    public void getAllDataDB1
    {
        ArrayList<ArrayList<x>> cells = new ArrayList<>();
        while(resTablesData1.next()) 
        {
            ArrayList<CellValue> row = new ArrayList<>();
            for (int k=0; k<colCount ; k++) {
            String colName = rsmd.getColumnName(i);
            Object o = resTablesData1.getObject(colName);
            row.add(new x(rsmd.getColumnType(),o.toString());
        }
        cells.add(row);
    }

    public static void main(String[] args) 
    {
        connectToDB1();
        // i want to call an instance of class "x" HERE!!!
    }
}

如何在public static void main中调用类x?难道我做错了什么?我已经测试了我知道的方式

Class class = new Class();
class.x(String a, String b);

但我收到错误。有人可以帮我解决这个问题吗? 提前谢谢。

4 个答案:

答案 0 :(得分:3)

由于x是一个内部类,因此需要外部类实例来获取引用:

Class x = new Javathesis().new x(a, b);

此外,需要从类声明中删除分号

可以使用创建的参考

调用x中的方法

Java命名约定显示类以大写字母开头。同样可以为班级提供比单个字母名称更有意义的名称

答案 1 :(得分:1)

您应该创建内部类的实例

YourInnerClass inner = new YourOuterClass().new YourInnerClass(); 

然后调用一个方法

inner.doMyStuff();

答案 2 :(得分:1)

此代码存在多个问题:

Class class = new Class();
class.x(String a, String b);

你不能命名一个变量'class',它是一个保留字。此外,x是一个类 - 你不能只调用它,你需要实例化它。

另外,为什么要实例化一个Class--这是一个封装Java类知识的类?

这样的事可能有用:

Javathesis thesis = new Javathesis();
Javathesis.x thesis_x = new thesis.x("a","b);

另外,请用大写字母开始类名 - 这是Java中的约定。

答案 3 :(得分:-1)

要在不从该类实例化对象的情况下调用类方法,必须将该方法声明为static,然后使用类名dot方法括号参数从任何地方调用。

公共类x {

//构造函数等

public static int add(int x,y){

返回x + y;

}

}

//从其他地方拨打电话

int y = x.add(4,5);