Я думал бы, что Вы будете иметь к самокрутке:
return (x instanceof Foo) ? (Foo) x : null;
РЕДАКТИРОВАНИЕ: Если Вы не хотите, чтобы Ваш клиентский код имел дело с пустыми указателями, то можно представить Несуществующий объект
interface Foo {
public void doBar();
}
class NullFoo implements Foo {
public void doBar() {} // do nothing
}
class FooUtils {
public static Foo asFoo(Object o) {
return (o instanceof Foo) ? (Foo) o : new NullFoo();
}
}
class Client {
public void process() {
Object o = ...;
Foo foo = FooUtils.asFoo(o);
foo.doBar(); // don't need to check for null in client
}
}
Localhost буквально означает «ваш локальный хост», обычно идентифицируемый 127.0.0.1, и весь трафик на этот адрес маршрутизируется через интерфейс обратной связи. Если ваш веб-сервер прослушивает соединения на 127.0.0.1, это означает, что он принимает запросы только от одного и того же хоста.
0.0.0.0 означает, что Rails прослушивает все интерфейсы, а не только интерфейс обратной связи.
0.0.0.0
означает все интерфейсы. Включая 127.0.0.1
aka localhost
.