Метод класса с классом instace / object в качестве аргументов - PullRequest
0 голосов
/ 26 ноября 2009

в Java допустимо ли иметь метод Class с аргументом как экземпляр класса / объект?

Как:

Class.method(obj)?

Ответы [ 3 ]

2 голосов
/ 26 ноября 2009

Полагаю, вы имеете в виду статический метод? Если так, да - это законно:

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
  }
0 голосов
/ 26 ноября 2009

Да, это так.

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

Затем мы можем использовать этот экземпляр в качестве параметра метода класса, т.е. format method:

 String.format( f, s );

Что возвращает Hello world

0 голосов
/ 26 ноября 2009

да, это действительно. но вы должны стараться избегать этого (за исключением некоторых особых случаев, обычно служебных вещей). Концепция классов Java не так хороша, как в других языках, например smalltalk или scala, где класс также является объектом. Например, нет наследования для статических методов, и это часто приводит к проблемам с предоставлением имитаций для тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...