Язык Java 7 по умолчанию

У вас есть несколько вариантов. Вы можете использовать агрегацию так

class normalClass
{
  protected $superClass;

  public function __construct( superClass $superClass )
  {
    $this->superClass = $superClass;
  }

  public function someMethod()
  {
    $this->superClass->doSomething();
  }
}

class superClass
{
  public function __construct()
  {
    $inst = new normalClass( $this );
    $inst->someMethod();
  }

  public function doSomething()
  {  //this method shall be be accessed by domeMethod form normalClass
  }
}

Или просто прямолинейный сеттер

class normalClass
{
  protected $superClass;

  public function setSuperClass( superClass $superClass )
  {
    $this->superClass = $superClass;
  }

  public function someMethod()
  {
    if ( !isset( $this->superClass ) )
    {
      throw new Exception( 'you must set a superclass' );
    }
    $this->superClass->doSomething();
  }
}

class superClass
{
  public function __construct()
  {
    $inst = new normalClass();
    $inst->setSuperClass( $this );
    $inst->someMethod();
  }

  public function doSomething()
  {  //this method shall be be accessed by domeMethod form normalClass
  }
}
23
задан Zardo 21 August 2011 в 19:05
поделиться

5 ответов

Это как задумано. Java 7 изменила способ работы Locale.getDefault(). В Oracle был обнаружен дефект, но в основном они сказали, что это As Designed.

Подводя итог, вы должны изменить язык интерфейса ОС. Только изменение формата региона уже недостаточно.

Прочитайте отчет об ошибке здесь: Locale.getDefault () возвращает неправильный языковой стандарт для Java SE 7

22
ответ дан Marius Schulz 21 August 2011 в 19:05
поделиться

Это действительно выглядит для меня как ошибка:

public static void main(String[] args) throws FileNotFoundException, IOException {

System.err.println(Locale.getDefault());
}

запускать это с отпечатками java 5 или java 6: 'nl_NL' java7: 'en_US'

2
ответ дан Johan Compagner 21 August 2011 в 19:05
поделиться

Проверьте настройку «Местоположение» на панели управления Windows. Региональные и языковые параметры (немецкий: «Region und Sprache», «Aufenthaltsort»).

0
ответ дан stracktracer 21 August 2011 в 19:05
поделиться

Это изменение довольно хорошо описано в этом сообщении в блоге и на странице совместимости .

Обратите внимание, что вы можете вернуться к старому поведению, установив системное свойство sun.locale.formatasdefault на true.

14
ответ дан Vadzim 21 August 2011 в 19:05
поделиться

Если вы достаточно смелы, вы можете позвонить:

Locale.setDefault(Locale.getDefault());

Это устанавливает локаль по умолчанию для обеих этих категорий

public static synchronized void setDefault(Locale newLocale) {
   setDefault(Category.DISPLAY, newLocale);
   setDefault(Category.FORMAT, newLocale);
   defaultLocale = newLocale;
}

Но это, конечно, может вызвать побочные эффекты.

0
ответ дан maryoush 21 August 2011 в 19:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: