GetUninitializedObject в Java? - PullRequest
       2

GetUninitializedObject в Java?

0 голосов
/ 09 марта 2012

Во-первых, ситуация. Я делаю школьный проект. Я должен реализовать свою собственную функцию клонирования. Он принимает объект в качестве аргумента, создает точную копию и возвращает его. Объявление функции:

Object clone(Object obj);

Проблема в том, что obj.getClass () не должен иметь соответствующего конструктора. Например, приватный конструктор, который принимает 3 аргумента. Поэтому я не знаю, как мне создавать объекты. Constructor.newInstance (аргументы) не будет работать. И я не знаю другого пути. Поэтому мне было интересно, если нет такого метода, как GetUninitializedObject, который находится в C #. Предложения по различным решениям приветствуются.

Заранее спасибо

Хорошего дня

Ответы [ 2 ]

0 голосов
/ 10 марта 2012

В Java ваши лучшие варианты - либо требовать общедоступного конструктора без аргументов и требовать установки (часто называемого Bean), либо использовать встроенную в сериализацию Java через ObjectInputStream и ObjectOutputStream. Вы также можете использовать Object.clone() для этого, хотя многие эксперты Java не одобряют это (например, Джош Блох предупреждает об этом в «Эффективной Java»)

0 голосов
/ 09 марта 2012

Вы можете получить конструкторы класса, а также их типы параметров.Вы можете прочитать здесь: http://tutorials.jenkov.com/java-reflection/constructors.html если у класса нет открытых конструкторов, то тут ничего общего.

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