All streams
Search
Write a publication
Pull to refresh
3
0
Артём @getmanartem

User

Send message
Приобрел сие изделие в феврале месяце. В основном рад и доволен, что не взял 9,7 дюймового монстра, как хотел изначально. «В основном» по следующим причинам:
  • тормозит, шельма, все ж таки безбожно, виснет, залипает, хотя может быть это и из-за того, что я погонял немного iPad товарища. Стоит однако оговориться, что происходит это во-первых не часто, а во-вторых при очевидных нагрузках (много вкладок браузера, попытка быстрого переключения между окнами при большом количестве работающих приложения и проч.)
  • экран и правда бледноват, процентов 20-30 яркости явно не хватает. Зато разрешение почти не отличается от хорошей Retina
  • аккумулятор дохнет за пару-тройку часов от WiFi (который и правда слабоват, но лишь немного), однако без него пол-дня комфортной непрерывной работы Вам обеспечено
К однозначным плюсам кроме экрана стоит отнести аллюминиевый корпус (уже получилось «немного» присесть на него — без последствий), который кроме того очень приятен на ощупь; удачное (да, именно, я не опечатался!) соотношение сторон и исключительный вес. Уверен, обладатели iPad`ов и прочих гробов хоть пару раз, но люто завидовали владельцам воздушных 250гр. читалок, крепко держа свой кирпич ДВУМЯ руками. Вы проклянёте эти несчастные 100 гр. разницы когда после NetTab`а попробуете взять любой не шибко дорогой 9.7 дюймовый планшет. Накачаный, суровый челябинец, конечно, плевал на это и держит своего друга одной рукой за край, в то время как обладатель NetTab`а, рахитичного телосложения и средней ширины ладони (к вопросу об удачном соотношении сторон) может позволить себе обхватить его снизу, что крайне удобно. Если вы не лупите свиньями по птицам, то очень быстро поймете, что такие необычные пропорции всего лишь необычны и позволяют годно читать статьи в браузере, заметки Evernote со всякими цветными диаграммами и прочей полезной технической святотенью.
Подтвержаю насчет runtime. Далее надеюсь не спороть чепухи. Насколько я понял в Java параметризация реализуется с применением стирания и это учитывается/влияет на компилятор. А вот результат стирания можно увидеть в runtime. И да, мой код совсем не к месту. К месту другой:
class SomeObject{
	public void someMeth(){
		System.out.println("Hello");
	}
}

class Controller<T>{
	private T mObj = null;
	public Controller(T obj){
		mObj = obj;
	}
	public void control(){
		mObj.someMeth();// <---- compilation error!
	} 
}

public class Parameterising {
	public static void main(String [] args){
		SomeObject someObj = new SomeObject();
		Controller<SomeObject> controller = new Controller<SomeObject>(someObj);
		controller.control();
	}
}

Из-за стирания параметра типа код внутри дженерика не знает о наличии метода someFn(). Могу предположить что подобная мантра:
Информация о параметрах типов недоступна внутри параметризованного кода
отрабатывает и в методе Object.getClass(). И только ограничения параметра типа
class Controller<T extends SomeObject>{...}
могут спасти ситуацию
На этот вопрос как мне кажется Эккель отвечает в «Thinking in Java 4 edition» (к великому сожалению читал в переводе).
1. В главе про RTTI говорится что:
Если обычная ссылка на класс может быть связана с любым объектом Class, параметризованная ссылка может связываться только с объектами типа, указанного при объявлении.

Значит код:
Class<A> result1 = a.getClass(); //error

содержит ошибку — объектная ссылка a может ссылаться (пардон за каламбур) на объект класса-потомка A, что недопустимо. Соответственно, расширение параметра типа проблему решает:
Class<? extends A> result = a.getClass();//ok

2. А в главе про параметризацию дается объяснение (как мне кажется) всего этого мракобесия:
Параметризация в Java реализуется с применением стирания (erasure).

А это значит что код:
class A{}
class B{}
List<A> aList = new ArrayList<A>();
List<B> bList = new ArrayList<B>();
System.out.println(aList.getClass().equals(bList.getClass() )  );

выведет:
true
что говорит о том, что при использовании параметризации вся конкретная информация о типе утрачивается :( и по словам Эккеля это есть проблема Java. Автор указал на это:
The actual result type is Class<? extends |X|> where |X| is the erasure of the static type of the expression on which getClass is called.

но сидящие здесь гуру (никакого сарказма!), намекают на это настолько неявно и как само собой разумеющееся, что я занервничал и решил-таки побыть К.О. и попозориться немного
2

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity