2009-11-26 68 views
0

在Java中它是否有作为Class实例/对象具有参数的Class方法?class instace/object作为参数的类方法

像:

Class.method(obj)? 
+3

这个问题确实是没有意义的,你能重述? – 2009-11-26 20:20:22

+0

lupindeterd,你的意思是静态方法吗? – 2009-11-26 20:22:44

回答

2

我猜你的意思是static方法?如果是这样,是的 - 这是合法的:

public class MyClass { 

    public static void staticMethod(MyClass parameter) { 
    System.out.println("static: " + parameter.toString()); // just an example 
    } 

    public void instanceMethod(int parameter) { 
    System.out.println("instance: " + parameter); // just an example 
    } 

    public static void main(String[] args) { 
    MyClass instance = new MyClass(); 
    instance.instanceMethod(3); // invoke instance method 
    MyClass.staticMethod(instance); // invoke static method 
    } 
+2

我认为主要的方法会很好,例如:D这是第一行代码,每个人都用java开始联系 – 2009-11-26 20:25:49

+0

“类方法”是正确的。静态方法是Java特定的,毕竟静态方法确实是类方法。 – OscarRyz 2009-11-26 20:43:08

+0

@Luno - OP询问关于传递对象实例作为静态方法的参数(至少这是我理解它的方式)。你不能用'main'来完成,因此在我的例子中是'staticMethod()'。 – ChssPly76 2009-11-26 21:07:19

0

是的它是有效的。但你应该尽量避免它(除了一些特殊情况,通常是实用的东西)。 java的类概念并不像其他语言那么好,例如smalltalk或scala,其中一个类也是一个对象。例如没有静态方法的继承,并且它经常导致提供模拟测试的问题。

0

是的。

String f = "Hello %s"; // f now is an instance of string 
//or 
String s = new String("world"); // s is another instance of string. 

然后我们可以使用这个实例作为一个类的方法的参数,即format方法:

String.format(f, s); 

它返回Hello world