我的主要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);
但我收到错误。有人可以帮我解决这个问题吗? 提前谢谢。
答案 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);