Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Маленький тест, :) 
:(
    Опции темы
LSD
Дата 22.3.2006, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Не, скорее всего загрузка происходит. Но нет инициализации. Например можно написать так:
Код
class Super 

  static int taxi = 1729; 


class Sub extends Super 

  static  
  { 
    System.out.println("Sub "); 
    taxi = 356; 
  } 


class Test  
{     
  public static void main(String[] args) throws Exception 
  { 
    System.out.println(Sub.class.getModifiers());
    System.out.println(Sub.taxi); 
  } 
}

и результат будет тот же.
Ленивая загрузка это хорошо, но настолько ленивая... smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
LSD
Дата 1.4.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Жаль что никто так и не ответил на вопрос с массивом:
Цитата
Задачка: в метод передается массив, надо распечатать элементы этого массива, так как это сделает метод String.valueOf(). Массив передается как Object и может быть и массивом примитивных типов, например int[]. Использовать if и instanceof для определения типа массива и приведения его к нужному типу нельзя (это же касается и аналогичных методов из класса java.lang.Class).

Ответ такой:
Код
public class ArrayTest
{
  public static void main(String[] args) throws Exception
  {
    print(new byte[]{1 , 2 , 3});
    print(new short[]{4 , 5 , 6});
    print(new int[]{7 , 8 , 9});
    print(new long[]{10 , 11 , 12});
    print(new float[]{1.1f , 1.2f , 1.3f});
    print(new double[]{2.1 , 2.2 , 2.3});
    print(new char[]{'A' , 'B' , 'C'});
    print(new boolean[]{true , false});
    print(new Object[]{new Date() , "Hello world!"});
  }

  public static void print(Object o) throws Exception
  {
    Class oClass = o.getClass();
    if(oClass.isArray())
    {
      int length = Array.getLength(o);
      Class compClass = oClass.getComponentType();
      StringBuffer methodName = new StringBuffer("get");
      if(compClass.isPrimitive())
      {
        methodName.append(compClass.getName());
        methodName.setCharAt(3, Character.toUpperCase(methodName.charAt(3)));
      }
      Method method = Array.class.getMethod(methodName.toString(), Object.class, Integer.TYPE);
      System.out.print(compClass.getName() + "[");
      for(int i = 0; i < length ; i++)
      {
        if(i > 0)
          System.out.print(", ");
        Object result = method.invoke(null, o, new Integer(i));
        System.out.print(result);
      }
      System.out.println(']');
    }
    else
    {
      System.out.println("Given object doesn't array");
    }
  }
}


P.S. Есть еще одна задачка, но активность тут в последнее время низкая. Стоит ее вообще выкладывать?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
powerOn
Дата 2.4.2006, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Цитата

P.S. Есть еще одна задачка, но активность тут в последнее время низкая. Стоит ее вообще выкладывать?


Странный вопрос, конечно стоит. smile
А с активностью, LSD, сам понимаешь, раз на раз не приходится... smile


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
LSD
Дата 5.4.2006, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Итак есть класс:
Код
public final class Singleton
{
  private static final Singleton singleton = new Singleton();

  private final long time = System.currentTimeMillis();

  private Singleton()
  {
    if(singleton != null)
      throw new OutOfMemoryError("Not enough memory for new Singleton ;-)");
  }

  public String toString()
  {
    return getClass().getName() + "[time = " + time + "]";
  }

  public static Singleton getInstance()
  {
    return singleton;
  }
}

вообщем самый обычный синглетон.
Задача состоит в том, чтобы создать два экземпляра класса Singleton, так чтобы s1 != s2.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
powerOn
Дата 5.4.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Цитата

Задача состоит в том, чтобы создать два экземпляра класса Singleton, так чтобы s1 != s2.


А класс можно редактировать, всмысле методы добавить?


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
powerOn
Дата 5.4.2006, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



А пакета разных с классом одним можно сделать?


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
jer1
Дата 5.4.2006, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 24.1.2005
Где: Харьков Украина

Репутация: 4
Всего: 5



LSD, спасибо за хорошую задачу smile
Код

public class SingletonTask {

    public static void main( String[] args ) throws Exception {
        Object s0 =  getSingleton();
        System.out.println(s0);
        
        Object s1 =  getSingleton(); 
        System. out.println(s1);

         if ( s0 == s1 ) {
             System.out.println("equal");
         } else System.out.println("not equal");
    }

    static Object getSingleton() throws Exception {
        File file = new File(".");

        URL url = file.toURL();       
        URL[] urls = new URL[]{url};

        ClassLoader parent = null;
        URLClassLoader cl = new URLClassLoader(urls, parent);
        Class cls = cl.loadClass("Singleton");
        Method getInstance = cls.getDeclaredMethod("getInstance", new Class[] {});
        Object result = getInstance.invoke(null, new Object[] {});

        return result;
    }
}    



к сожалению не удалось привести к типу Singleton smile
--------------------
:w!q
PM MAIL   Вверх
LSD
Дата 5.4.2006, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



jer1 БИНГО! smile

Цитата(jer1 @ 5.4.2006, 19:29 Найти цитируемый пост)
к сожалению не удалось привести к типу Singleton

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


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
LSD
Дата 6.4.2006, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(MoonCat @ 5.4.2006, 16:15 Найти цитируемый пост)
А класс можно редактировать, всмысле методы добавить?

Добавляй, только как это тебе поможет?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
JUncle
Дата 7.4.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 6.4.2006
Где: Казань, РФ

Репутация: нет
Всего: 1



Цитата(MoonCat @ 5.4.2006, 15:15 Найти цитируемый пост)
А класс можно редактировать, всмысле методы добавить?

Цитата(LSD @ 6.4.2006, 22:20 Найти цитируемый пост)
Добавляй, только как это тебе поможет?

А параметризованный конструктор к этому относится? smile
--------------------
class JUncle extends Man // singleton{/*...*/}
PM MAIL   Вверх
LSD
Дата 7.4.2006, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(JUncle @ 7.4.2006, 13:28 Найти цитируемый пост)
А параметризованный конструктор к этому относится?

Не-е-е, так нельзя smile
А еще сделать его public, то вообще все проблемы исчезнут smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Mayk
Дата 19.6.2006, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



Кхм-кхм, а не пора ли огласить ожидаемое решение?  


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
LSD
Дата 19.6.2006, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Mayk @  19.6.2006,  20:24 Найти цитируемый пост)
Кхм-кхм, а не пора ли огласить ожидаемое решение?

Решение какой задачи? 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
LSD
Дата 16.9.2006, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Можно ли создать в классе 2 метода у которых будут одинаковые имена и параметры и которые будут различаться только типов возвращаемого значения?
Что-то наподобие такого:
Код
public class Test
{
  public String get()
  {
    return null;
  }

  public Object get()
  {
    return null;
  }
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
shimopus
Дата 16.9.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 25.8.2006

Репутация: 1
Всего: 1



Думаю, что нельзя. Ну по крайней мере в этом случае. Т.к. String является наследником Object, то не будет возможности различить какой именно метод мы вызываем.
PM ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1402 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.