У меня есть интерфейс Объект Class , предоставленный в качестве параметра метода, и у меня также есть экземпляр Object объекта .casted.
Задача: Привести объект так, как если бы я делал объект interface = object, но вручную, используя метод Class.cast ().
И звезда шоу:
def readObject(type, path) {
Object obj
// Prevent playing with NPE
if (groovyClassLoader == null)
groovyClassLoader = new GroovyClassLoader(getClass().getClassLoader())
// The final quest begins
try {
Class groovyClass = groovyClassLoader.parseClass(new File(path))
// at this point: type ins an instance of Class which is an interface
// to which I need to assign the obj instance
// groovyClass is an instance of Class
// out of which I need to get object and eventually cast it to type
// so something like:
// groovyClass = groovyClass.cast(type)
// obj = groovyClass.newInstance()
// or
// obj = groovyClass.newInstance()
// obj = groovyClass.cast(type)
obj = groovyClass.newInstance()
obj = type.cast(obj)
} catch (ex){
//TODO:IO and obj creation exception should be logged
ex.printStackTrace()
}
return obj
}
Это могущественный воинственный квест на выживание с использованием магов, и я начинаю чувствовать, что моя миссия вне возможностей великой земли XD