以下内容无法编译,给出"非法转发引用"消息:
class StaticInitialisation {
static
{
System.out.println("Test string is: " + testString);
}
private static String testString;
public static void main(String args[]) {
new StaticInitialisation();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,以下编译:
class InstanceInitialisation1 {
{
System.out.println("Test string is: " + this.testString);
}
private String testString;
public static void main(String args[]) {
new InstanceInitialisation1();
}
}
Run Code Online (Sandbox Code Playgroud)
但以下内容无法编译,给出"非法转发引用"消息:
class InstanceInitialisation2 {
private String testString1;
{
testString1 = testString2;
}
private String testString2;
public static void main(String args[]) {
new InstanceInitialisation2();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么StaticInitialisation和InstanceInitialisation2不能编译,而InstanceInitialisation1呢?
我有一个Android智能手机使用USB线连接到我的Mac.运行Android Studio时,LOGCAT中会显示以下内容.这些线不断重复,有时以略微不同的顺序重复.我不清楚导致这种情况的原因以及如何解决这个问题......
08-09 16:17:31.554 2208-20167/? D/NetlinkSocketObserver: NeighborEvent{elapsedMs=11269730, 192.168.1.254, [5464D91A00EE], RTM_NEWNEIGH, NUD_STALE}
08-09 16:17:32.829 27970-27970/? E/NEW_BHD: Battery Power Supply logging Daemon start!!!!!
08-09 16:17:32.830 27970-27970/? E/NEW_BHD: Cannot run on production devices!
08-09 16:17:37.856 27971-27971/? E/NEW_BHD: Battery Power Supply logging Daemon start!!!!!
08-09 16:17:37.857 27971-27971/? E/NEW_BHD: Cannot run on production devices!
08-09 16:17:42.881 27972-27972/? E/NEW_BHD: Battery Power Supply logging Daemon start!!!!!
08-09 16:17:42.882 27972-27972/? E/NEW_BHD: Cannot run on production devices!
08-09 16:17:47.901 27973-27973/? E/NEW_BHD: Battery Power Supply logging Daemon start!!!!!
08-09 16:17:47.902 …Run Code Online (Sandbox Code Playgroud) 在我使用的 Android Studio 版本中,有一个按钮可以旋转屏幕,但不能添加变体。我正在使用 Android Studio 2.2 Preview 7
回答:
我正在寻找的按钮被“属性”视图隐藏了。
我对此感到困惑.
案例A.
案例B
为什么案例A抛出异常而案例B没有抛出异常?为什么FlowLayout和BoxLayout在这方面表现不同?在案例A中,"BoxLayout无法共享"是什么意思?
我在这个网站上读过一些关于这个异常消息的类似线程,但我仍然对与FlowLayout的比较以及异常消息的确切含义感到困惑.
使用Selenium WebDriver for Java,是否可以在给定URL的情况下获取网页的HTML?
我知道,一旦在浏览器中加载了网页,就可以使用WebDriver.getPageSource()获得HTML。但是,为了提高效率,是否可以在不先将页面加载到浏览器中的情况下获取HTML?
对于下面的方法,当它不在“try”块内时是否可以抛出异常?
public void setCapacity(x) throws CapacityExceededException {
if (x > 10) throw new CapacityExceededException(x);
else this.x = x;
}
Run Code Online (Sandbox Code Playgroud) 鉴于以下内容:
public abstract class Test {
public static void main(String[] args) {
int[] testArray = {6, 3, 2};
System.out.println(testArray[3]);
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行程序时,我得到:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Test1.main(Test1.java:5)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,JVM显示超出范围的索引,即3.
除了这个特定的例子,我选择不在程序的代码中捕获异常:
对于任何检查或未检查的异常,我如何找出JVM将显示的默认消息?
对于我自己编写的自定义异常类,以及我在代码中使用'throw'关键字生成的此类对象(但是,再次选择不捕获),我是否可以设置JVM的默认消息会显示?
我正在编写一个使用JFrame对象和几个JPanel对象的Java GUI程序.JPanel对象使用paint()和repaint()方法,而一些JPanel对象使用JLabel和JButtons.当我运行程序时,这些不同组件中的一些组件在我希望它们的方式中是不可见的,即看起来有些组件正在隐藏其他组件.
什么决定程序运行时哪些组件可见?它取决于组件添加到顶级容器的顺序,还是每个对象的paint()方法的调用顺序?可以覆盖此默认可见性吗?
编辑:我应该添加一些JPanel(及其组件)相互重叠.
编辑:这是一个示例程序.什么决定哪些组件在屏幕上可见?例如,当Button2不是时,为什么Button1可见?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test1 extends JFrame {
public Test1() {
setLayout(null);
setSize(500, 700);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(new Test2());
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Test1();
}
});
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test2 extends JPanel {
public Test2() {
setBounds(0, 0, 300, 500);
setLayout(null);
add(new Test3());
add(new Test4());
setVisible(true);
}
public void paint(Graphics g) {
g.drawRect(0, 0, …Run Code Online (Sandbox Code Playgroud) 以下是一些Android java代码:
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = new ThisClassExtendsFragment();
fm.beginTransaction().add(R.id.fragment_container, fragment).commit();
Run Code Online (Sandbox Code Playgroud)
我对beginTransaction()的调用感到困惑.这似乎是一个抽象的方法,并没有在任何地方实现.然后如何返回FragmentTransaction对象?