Поэтому я создаю API для java, и мне нужно расширение, например, в моем методе. Пример:
someMethod().getName();
Что-то вроде того. Кто-нибудь знает как?
То, что вы пытаетесь сделать, - это то, что называется цепочкой методов. Пусть этот пример:
obj.methodOne().methodTwo()
Это вызовет methodTwo()
из объекта, возвращаемого вызовом obj.methodOne()
, поэтому вы можете думать о цепочке выше, как если бы это было так:
(obj.methodOne()).methodTwo()
Скажем, у вас есть этот класс:
public class MyClass2 {
public int methodTwo() {...}
}
Затем, чтобы иметь возможность вызывать methodTwo
из результата obj.methodOne()
, метод methodOne()
должен возвращать экземпляр класса MyClass2
:
public class MyClass1 {
public MyClass2 methodOne() {
return new MyClass2(); // returns instance of 'MyClass2'
}
}
Я думаю, вы не можете выразить свой вопрос.
1) Если вы хотите иметь метод toString()
в классе, вы можете сделать следующее:
public class XYZ
{
//Your properties and methods
@Override
public String toString()
{
//Manipulate what you want to return as a String
return a_string;
}
}
2) Вы хотите вызвать метод по результату метода. Цепочка метода
class XYZ
{
//Your properties and methods
public ABC getABC()
{
return an_ABC_object;
}
}
class ABC
{
public void doSomething()
{
// do some work or print something
}
}
public class Test
{
public static void main(String arg[])
{
XYZ xyz=new XYZ();
xyz.getABC().doSomething();
}
}
Не уверен, что вы имеете в виду, но это может помочь
class Foo {
Object someMethod() {
...
return new Object() {
public String toString() {
return "Bar";
}
}
}
}
То, что вы делаете, возвращает анонимный класс и переопределяет toString(). Подробнее об анонимных классах читайте здесь: http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html