Является C# “явной реализацией” интерфейса, существующего в Java?

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

Если это работает, то я думаю, что в вашем коде получения данных нет проблем.

17
задан svick 9 November 2014 в 14:11
поделиться

4 ответа

Нет, нет ничего как явная интерфейсная реализация C# в Java.

Зато, Java имеет ковариантные типы возврата, поэтому если Вы хотите обеспечить реализацию более со строгим контролем типов, чем интерфейс указывает, это хорошо. Например, это прекрасно:

interface Foo
{
    Object getBar();
}

public class Test implements Foo
{
    @Override
    public String getBar()
    {
        return "hi";
    }
}

C# не признал бы, что - и один из путей вокруг этого должен обычно реализовывать интерфейс явно и затем иметь более определенный открытый метод (обычно называемый интерфейсной реализацией).

29
ответ дан 30 November 2019 в 14:06
поделиться

Вы можете добиться аналогичного эффекта, используя механизм реализации анонимного интерфейса в Java.

См. Пример:

interface Foo {

    void f();
}

interface Bar {

    void f();
}

public class Test {

    private String foo = "foo", bar = "bar";

    Foo getFoo() {
        return new Foo() {

            @Override
            public void f() {
                System.out.println(foo);
            }
        };
    }

    Bar getBar() {
        return new Bar() {

            @Override
            public void f() {
                System.out.println(bar);
            }
        };
    }

    public static void main(String... args) {
        Test test = new Test();
        test.getFoo().f();
        test.getBar().f();
    }
}
4
ответ дан 30 November 2019 в 14:06
поделиться

Вы можете сделать это, только если методы перегружены. Если у вас есть два метода, которые должны делать разные вещи, они должны иметь разные имена ИМХО.

0
ответ дан 30 November 2019 в 14:06
поделиться

Нет, и он никогда не должен присутствовать в Java. Это просто еще одна кость, которую стоит бросить людям, которых не волнует хороший дизайн.

Явная реализация интерфейса никогда не должна требоваться или использоваться. Есть лучшие способы решить проблему, которую он пытается решить.

-16
ответ дан 30 November 2019 в 14:06
поделиться