#java
#java
Вопрос:
Я цитирую из JLS 9.1.1.2 strictfp Интерфейсы
«Эффект strictfp
модификатора заключается в том, чтобы все float
double
выражения or в объявлении интерфейса были явно FP-строгими. Это подразумевает, что все вложенные типы, объявленные в интерфейсе, являются неявными strictfp
. «
Итак, что такое вложенные типы? Действительно ли это означает вложенные ссылочные типы?
Обновить:
Я имел в виду, мне нужно определение вложенных типов.
Ответ №1:
Вложенный класс — это класс, объявленный внутри другого класса, например, так.
class SomeClass {
class Nested {
}
static class StaticNested {
}
}
Вы также можете вкладывать внутри интерфейсов:
interface SomeInterface {
class Nested {
}
static class StaticNested {
}
}
Значение этого с точки зрения вашего вопроса заключается в том, делаете ли вы это:
strictfp interface SomeInterface {
или
strictfp class SomeClass {
Тогда, когда у вас есть что-то внутри
class Nested {
Это неявно
strictfp class Nested {
Ответ №2:
Интерфейс может иметь вложенный интерфейс внутри своего определения. Это означает, что когда вы размещаете strictfp в интерфейсе, все вложенные интерфейсы также являются strictfp.
Примечание: Учитывая, что многие JVM по умолчанию являются strictfp почти для всех операций, может быть трудно определить разницу.