Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Хотя мне нравится Ваше решение, я всегда находил, что IFRAMEs больше проблемы, чем они стоят.
, Почему? 1. Проблема калибровки. 2. iframe имеет это, src приписывают беспокойству о. т.е. полный путь. 3. дополнительная сложность со страницами.
Мое решение - ОТДЕЛЕНИЯ, которые динамично загружаются через вызовы Ajax. ОТДЕЛЕНИЯ Будут автоматический размер. Хотя код Ajax требует работы JavaScript (который может быть сделан через платформы), они относительно того, где сайт. 3 промывка, Вы торгуете сложностью на страницах до JavaScript.
Вместо < IFRAME...> используйте < идентификатор DIV = "mystuff"/>
Делают вызов ajax, чтобы заполнить mystuff отделение данными и позволить браузеру волноваться об этом.
Вот решение, которое, кажется, работает. По сути, scrollHeight является правильным значением в большинстве случаев. Однако в IE (в частности, 6 и 7), если содержимое просто содержится в текстовых узлах, высота не рассчитывается, а просто устанавливается по умолчанию на высоту, заданную в CSS, или на атрибут «height» в iframe. Это было найдено методом проб и ошибок, поэтому возьмите его таким, какое оно стоит.
function getDocumentHeight(doc) {
var mdoc = doc || document;
var docHeight = mdoc.body.scrollHeight;
if ($.browser.msie) {
// IE 6/7 don't report body height correctly.
// Instead, insert a temporary div containing the contents.
var child = $("<div>" + mdoc.body.innerHTML + "</div>", mdoc);
$("body", mdoc).prepend(child);
docHeight = child.height();
child.remove();
}
return docHeight;
}
Я обнаружил, что это решение работает, например, в версиях 6+, ff 3.5+, safari 4+. Я создаю и добавляю в документ iframe. Следующий код выполняется в конце события загрузки jQuery после некоторой другой манипуляции с dom. Тайм-аут необходим мне из-за дополнительных манипуляций с dom, происходящих в событии загрузки.
// sizing - slight delay for good scrollheight
setTimeout(function() {
var intContentHeight = objContentDoc.body.scrollHeight;
var $wrap = $("#divContentWrapper", objContentFrameDoc);
var intMaxHeight = getMaxLayeredContentHeight($wrap);
$this.height(intContentHeight > intMaxHeight ? intMaxHeight : intContentHeight);
// animate
fireLayeredContentAnimation($wrap);
}, 100);
У меня есть некоторые ограничения по размеру, которые нужно учитывать, это то, что для меня проверяет вызов getMaxLayeredContentHeight. Надеюсь, это поможет.