Сорта-расширение по методу java

1

Поэтому я создаю API для java, и мне нужно расширение, например, в моем методе. Пример:

someMethod().getName();

Что-то вроде того. Кто-нибудь знает как?

  • 1
    не совсем уверен, что вы имеете в виду. но то, что вы делаете, на самом деле не является «расширением». то, что вы делаете, вызывает toString () для возвращенного результата someMethod ()
  • 0
    Это был просто пример. Я мог бы использовать другой. Как getWorld (). GetName ();
Показать ещё 2 комментария
Теги:
methods

3 ответа

1

То, что вы пытаетесь сделать, - это то, что называется цепочкой методов. Пусть этот пример:

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'
    }
}
0

Я думаю, вы не можете выразить свой вопрос.
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();
    }
}
0

Не уверен, что вы имеете в виду, но это может помочь

class Foo {
    Object someMethod() {
        ...
        return new Object() {
            public String toString() {
                return "Bar";
            }
        }
    }
}

То, что вы делаете, возвращает анонимный класс и переопределяет toString(). Подробнее об анонимных классах читайте здесь: http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню