Что такое вложенные типы?

#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 почти для всех операций, может быть трудно определить разницу.