Всё зависит от конкретных ситуаций и кода. Если в коде не используется вещей которых нет в Java (делегаты, значения по ссылке, значимые типы и т.д.) то оверхед минимальный, а то и вообще не будет, код получается идентичный если писать его сразу на Java. Конкретных цифр к сожалению назвать не могу — тесты пока не проводил.
public class Program
{
public int field;
public void Foo(ref int value)
{
value = 10;
}
public void Main(string[] args)
{
int localVar = 10;
Program p = new Program();
Foo(ref localVar);
Foo(ref p.field);
}
}
Превратится в:
Результат
public abstract class ByRefInt
{
public abstract int get_Value();
public abstract void set_Value(int newValue);
}
public sealed class LocalByRefInt
{
private int value;
public LocalByRefInt(int value) { this.value = value; }
public int get_Value() { return this.value; }
public void set_Value(int newValue) { this.value = newValue; }
}
public sealed class FieldByRefInt
{
private object target;
private java.lang.reflect.Field field;
private int value;
public FieldByRefInt(object target, Field targetField)
{
this.target = target;
this.field = targetField;
paramField.setAccessible(true);
this.value = targetField.getInt(target);
}
public int get_Value()
{
return this.value;
}
public void set_Value(int newValue)
{
this.field.set[type](this.target, newValue);
this.value = newValue;
}
}
public class Program
{
public int field;
public void Foo(ByRefInt value)
{
value.set_Value(value);
}
public static void Main(string[] args)
{
int localVar = 10;
Program p = new Program();
LocalByRefInt tempLocal = new LocalByRefInt(localVar);
Foo(tempLocal);
localVar = tempLocal.get_Value();
Foo(new FieldByRefInt(p, Program.class.getDeclaredField("field")));
}
}
Видимо не правильно сформулировал с топике. Имелось в виду что результирующий код должен запускаться на Java версии не ниже 1.6. Поэтому 1.7 и 1.8 соответственно отпадают. Почему 1.6? Что бы охватить большее количество платформ.
Зачем нужен отдельный клас LocalByRef[type] со всякми геттерами-сеттерами, почему бы не использовать вместо него массив из одного элемента?
Класс LocalByRef[type] является наследником абстрактного класс ByRef[type] который в свою очередь представляет единый интерфейс для всех типов ссылок (на локальную переменную, на поле объекта или элемент массива). А массив из одного элемента подходит только для передачи по ссылке локальных переменных.
Для чего в примерах нужен main(String[]) в дополнение к Main(string[]), что мешает генерировать его автоматически при трансляции?
А я сейчас служу и когда командование узнало что я программист, спросили, а могу ли я написать им программу которая им карты и несколько графиков рисовало бы в автоматическом режиме. Я согласился и сейчас практически только этим и занимаюсь. Ноутбук из дома взял (благо служу рядом с домом). Командованию хорошо, не надо будет рисовать эти карты вручную, а я что то новое (работа с картографическими данными) для себя изучил.
По идее, если писать стилусом, то ладонью можно генерировать нажатия на ёмкостной тачскрин.
Логичнее отключать ёмкостной в случае если перо фиксируется рабочей зоне, т.е. мы пишем пером. Иначе придётся постоянно убирать\доставать его.
А кнопка может быть полезна для включения\выключения индукционной подложки — экономия энергии. По крайней мере так сделано в книгах PocketBook с индукционным сенсором (Pro 612, 603, 912 и 903)
Не обязательно. Два типа сенсора: емкостной для NumPad-а (реагирует только на пальцы) и индуктивный для планшета (реагирует только на перо). Т.е. так же, как реализовано в Galaxy Note.
Правда если в этой же области делать тачпад — тогда да, кнопка переключения режимов нужна.
Она, кстати, после установки остается — достаточно при включении переключить рычажок hold в рабочее положение (хотя вот тут я не уверен насчет Classic, но на Video так
К сожалению у Classic это не так. Его можно потом вернуть к стоковой, путём перепрошивки, но вот так переключиться не получится.
Уже недели две — полёт нормальный, кроме момента с зависанием. Но мне кажется это не связанно с HDD. Сравнить с родной прошивкой не могу — на самом деле никогда не пользовался. Но то, что он увеличился это факт.
В моём случае диск был повреждён очень неравномерно — битые сектора встречались почти по всей поверхности. Самым большим неповреждённым куском оказались примерно 26 гигабайт в самом конце диска.
Спасибо за комментарий. Теперь по крайней мере понятно что иногда отсутствует скролл не только из-за несовместимости с плагином ipad. Я постараюсь исправить чуть позже. Сейчас из-за активного поиска новой работы и переезда не хватает времени.
Ваше пожелание добавил в TODO, так что будет сделано в будущем.
Превратится в:
Класс LocalByRef[type] является наследником абстрактного класс ByRef[type] который в свою очередь представляет единый интерфейс для всех типов ссылок (на локальную переменную, на поле объекта или элемент массива). А массив из одного элемента подходит только для передачи по ссылке локальных переменных.
Ничего не мешает. В будущем будет реализовано.
Вкратце, модуль надо подключать вот так:
Логичнее отключать ёмкостной в случае если перо фиксируется рабочей зоне, т.е. мы пишем пером. Иначе придётся постоянно убирать\доставать его.
А кнопка может быть полезна для включения\выключения индукционной подложки — экономия энергии. По крайней мере так сделано в книгах PocketBook с индукционным сенсором (Pro 612, 603, 912 и 903)
Правда если в этой же области делать тачпад — тогда да, кнопка переключения режимов нужна.
Согласен. И готов к этому. Сильно не растроюсь. Тем более что плеер мне достался бесплатно =)
Ваше пожелание добавил в TODO, так что будет сделано в будущем.