Java getClass().getName()它返回类而不是名称
输出是卡片。据说是无名的简。我该如何解决这个问题?我试图用Card.getClass().getName()修复它,但这给了我另一个错误:无法从静态上下文引用非静态方法getClass()Java getClass().getName()它返回类而不是名称,java,Java,输出是卡片。据说是无名的简。我该如何解决这个问题?我试图用Card.getClass().getName()修复它,但这给了我另一个错误:无法从静态上下文引用非静态方法getClass() public class Card { private String name; public Card() { name = "unknown"; } public Card(String name1) { name =
public class Card
{
private String name;
public Card()
{
name = "unknown";
}
public Card(String name1)
{
name = name1 ;
}
public String getName()
{
return name;
}
public String toString()
{
return getClass().getName();
}
}
public class CardTester
{
public static void main(String[] args)
{
Card card ;
card = new Card() ;
System.out.println(card) ;
System.out.println("unknown WAS EXPECTED") ;
card = new Card("Jane") ;
System.out.println(card) ;
System.out.println("Jane WAS EXPECTED") ;
}
}
getClass()
返回表示“卡”类的值;因此,代码不是指Card#getName
方法,而是指尽职尽责地返回“Card”的方法
只需删除getClass()
:
上一个错误(wrt“static”)使用的是Card.getName()
-不要为调用实例方法的类型添加前缀。您的toString()
方法打印对象类的名称:
return getClass().getName();
该对象是Card
的实例,因此其类为Card.class
,其名称为Card
。您希望打印名称字段的值。所以你只需要
return name;
return name;