构造函数方法调用中的参数

时间:2015-08-02 09:52:03

标签: java methods constructor

这种类型的传递构造函数对于在Java中调用的方法是什么 (Class_name是内部类)?

method_name(new Class_name(arguments));

如何在没有对象实例的情况下传递构造函数?

5 个答案:

答案 0 :(得分:2)

好吧,实际上new Class_name(arguments) 创建一个新的类实例。构造可能很有用 - 它比

更简洁
Class_name instance = new Class_name(arguments);
method_name(instance);

但您稍后无法访问instance

答案 1 :(得分:1)

如前所述,你传递的是一个新物体。

如果您只想传递有关此类的信息,那么您的方法需要使用Class参数,例如...

public void method_name(Class clz) { ... do something... )

你会这样称呼它......

method_name( Class_name.class);

另一件事就是按字面意思做你想要的就是给构造函数,例如,你可以得到......

Constructor const = Class_name.class.getConstructor( ArgumentType.class, AnotherArgumentType.class, ...);

例如......

Constructor const = Class_name.class.getConstructor( String.class);

...如果你的构造函数接受了一个String参数。

然后打电话给你的方法...

public void method_name(Constructor constructor) { ... do something... )

...与......

method_name( const );

最后一种方式是非常具体的,我怀疑它实际上是你需要的,无论你认为你可能需要什么。

答案 2 :(得分:0)

new创建一个对象,并将其传递给该函数。你没有传递你正在传递该类的“新”类,它将创建一个对象

答案 3 :(得分:0)

您没有传递构造函数,实例:

当你这样做时:

MyClass myClass = new Myclass();
method_name(myClass);

MyClass的实例为myClass。然后用method_name作为参数调用myClass

所以这可以缩短为:

method_name(new Myclass());

答案 4 :(得分:0)

这些类型的用例在装饰器设计模式中非常常见,您不需要中间对象。

示例:

FileReader fr = new FileReader(filename);
LineNumberReader lnr = new LineNumberReader(fr);

LineNumberReader lnr = new LineNumberReader(new FileReader(filename));

查看来自nio框架的I / O类,以便更好地理解这些类型的用例。

相关问题