这看起来不像重复,因为只有一个我的解决方案涉及一个分支.
基本上,这两条线中哪一条更有效率?将是一个Java应用程序,但很高兴知道一般的答案.
shouldRefresh = useCache ? refetchIfExpired : true;
shouldRefresh = !useCache || refetchIfExpired;
Run Code Online (Sandbox Code Playgroud) 由于myObject.toString()失败myObject是null(抛出a NullPointerException),因此它更安全myObject+"",因为它本质上正在做String.valueOf(myObject).concat(""),但不会失败,而是会导致字符串"null".
但是,这是一个好习惯吗?我的第一个想法是,似乎可能需要更长的时间才能执行,因为它隐含地调用了两种方法,但它确实有助于保证软件不会崩溃.
对不起; 我不喜欢问"我为什么会这样exception?" 关于StackOverflow的问题(现在我想起来有点讽刺......),但我无法弄清楚这个异常的原因!我已经搜索了一个解决方案,但是那些弹出的是要么是一个微妙的异常,当人们试图访问Transferrable事件处理程序的外部,或者根本没有回答.
我正试图在DropTargetListener#drop(DropTargetListener)方法中做到这一点.我正在通过从运行程序的同一驱动器中拖动PNG来测试这一点,这让我觉得数据随时可用.我的相关代码和结果异常如下:
(为简洁起见,缩短了注释中的行号,=>如果是错误行,则后跟其中)
// package declaration
// imports
/*45 */ public class BHFileChooser extends JComponent implements DropTargetListener
/*46 */ {
// object declaration
...
// initialization methods
...
/*186*/ @Override
/*187*/ public void dragEnter(DropTargetDragEvent dtde)
/*188*/ {
/*189*/ setState(State.EVALUATING);
/*190*/ setState(canAccept(dtde.getTransferable()) ? State.EVALUATED_ACCEPTABLE : State.EVALUATED_UNACCEPTABLE);
/*191*/ validate();
/*192*/ }
/*193*/
/*194*/ @Override
/*195*/ public void dragExit(DropTargetEvent dte)
/*196*/ {
/*197*/ setState(State.WAITING); …Run Code Online (Sandbox Code Playgroud) 我正从Swift搬到Kotlin,到目前为止一直很喜欢它.但是,我习惯于声明这样的方法(假装引用的方法存在并且工作):
// Swift method declaration
func drawCircle(inRect rect: CGRect, antialiased: Bool) {
super.antialiased = antialiased
super.drawCircle(inRect: rect)
}
Run Code Online (Sandbox Code Playgroud)
并称他们为:
drawCircle(inRect:myRect, antialiased: false)
Run Code Online (Sandbox Code Playgroud)
这是一个精美的自我记录,读起来像英语.但是,在Kotlin中,类似的方法如下:
fun drawCircle(inRect: Rectangle, antialiased: Boolean) {
super.antialiased = antialiased
super.drawCircle(inRect)
}
Run Code Online (Sandbox Code Playgroud)
使用名为的变量已经开始听起来很奇怪inRect.但是当我打电话时它会变得更糟:
drawCircle(myRect, false)
Run Code Online (Sandbox Code Playgroud)
在这里,我们看到了最大的问题:人们可以通过单独阅读这条线来猜测,这myRect是一个将绘制圆的矩形.但是,是什么true?它可能是抗锯齿,是的,但它也可能是不透明地绘制它,还是一些关于是否要绘制它的切换!无论如何,我可以举出更多理由说明为什么Swift和Objective-C程序员喜欢用方法调用他们的标签,但我已经说明了我的观点.
有没有办法在Kotlin中启用方法调用标签?
我有一个数字(64位int),并想知道它是否是10的纯函数.也就是说,1跟随0或0以上的零.有没有一种有效的方法来做到这一点,而不涉及将其变成一个字符串?
目前我这样做:
科特林
fun isPowerOf10(n: Long): Boolean {
val logN = Math.log10(myInt.toDouble())
return logN != Math.floor(logN)
}
Run Code Online (Sandbox Code Playgroud)
Java的
static boolean isPowerOf10(long n) {
double logN = Math.log10((double) myInt);
return logN != Math.floor(logN);
}
Run Code Online (Sandbox Code Playgroud)
但它失败了isPowerOf10(999_999_999_999_999_999)(和负面版本),因为在转换为double并且log10正确输出时精度损失18.0.
我正在创建一个程序来发明一个新的数独谜题.我最初计划这样做的方法是发明一个新的谜题,然后删除随机数.但是,我使用(见下文)创建新拼图的算法最多可能需要5分钟才能完成.有没有人有更快的解决方案?
for (int x = 0; x < boardWidth; x++) //boardWidth is the number of fillable squares wide and high the board is. (9 for a standard Sudoku board)
{
for (int y = 0; y < boardWidth; y++)
{
int errorCount = 0;
do
{
boardVals[y][x] = (byte)(rand.nextInt(boardWidth) + 1);
errorCount++;
if (errorCount > Math.pow(boardWidth, 4)) //If the square has been tried to be filled up to boardWidth^4 times (6,561 for a standard Sudoku board), it clears the …Run Code Online (Sandbox Code Playgroud) 我想知道如何在不让用户离开甚至关闭窗口的情况下改变我的java应用程序的外观.我知道这是可能的,正如我已经看到的那样.我尝试实现它,下面显示的代码,但它只有在我setLookAndFeel()显示窗口之前调用我的方法时才有效.
我究竟做错了什么?
package lookandfeeltester;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class MainJFrame extends javax.swing.JFrame
{
public MainJFrame()
{
setDefaultLookAndFeelDecorated(true);
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
buttonGroup = new javax.swing.ButtonGroup();
metalRadioButton = new javax.swing.JRadioButton();
nimbusRadioButton = new javax.swing.JRadioButton();
motifRadioButton = new javax.swing.JRadioButton();
windowsRadioButton = new javax.swing.JRadioButton();
windowsClassicRadioButton = new javax.swing.JRadioButton();
menuBar = new javax.swing.JMenuBar();
fileMenu = new javax.swing.JMenu();
exitMenuItem = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new java.awt.GridBagLayout());
buttonGroup.add(metalRadioButton);
metalRadioButton.setText("Metal");
metalRadioButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { …Run Code Online (Sandbox Code Playgroud) 我正在制作的程序中有以下代码:
01 public class Clazz<T>
02 {
03 T[] t;
04
05 public Clazz<T> methodA(int... ints)
06 {
07 Clazz<Integer> ints2 = new Clazz<>();
08 int remInd[] = new int[t.length - ints2.t.length];
09 return this;
10 }
11 }
Run Code Online (Sandbox Code Playgroud)
但是当我运行方法时methodA,我收到此错误:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
at Clazz.methodA(Clazz.java:8)
Run Code Online (Sandbox Code Playgroud)
为什么我会收到此错误?当然,与所讨论的巨大类相比,我所显示的代码是不完整的(例如,t在检查其长度时,数组不会为空),但我相信我已经展示了重要的一切.这为什么不运行?
注意:我使用JDK 1.7进行此操作,这就是为什么第7行编译和工作的原因
无论出于何种原因,我决定实施以下解决方案,并且它有效:
01 public class Clazz<T>
02 {
03 T[] t;
04
05 public Clazz<T> methodA(int... ints)
06 { …Run Code Online (Sandbox Code Playgroud) 我有一组三个自动生成的批处理文件,总结如下
arbitrary.bat@ECHO OFF
set APPDATA=C:\Users\%USERNAME%\AppData\Minecrafts\1.9p5\
set T1=ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
set T2=³ÍÍÍ 1.9p5 ÍÍͳ
set T3=ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
masterControl
Run Code Online (Sandbox Code Playgroud)
masterControl.batvarInit
[main program logic...]
Run Code Online (Sandbox Code Playgroud)
varInit.batset U=valueOfU
set P=valueOfP
set S=valueOfS
pause
Run Code Online (Sandbox Code Playgroud)
这个想法是arbitrary.bat运行,其他两个也被调用.但是,程序在masterControl运行第一行后立即停止(所有行都varInit成功运行).**为什么这个程序没有超过第一行masterControl?
W3C建议书定义了通过使用选择具有已定义类的任何锚点的能力A[CLASS]{/*Code*/},但是有没有先例?
我可以选择所有没有课程的锚吗?
我的直觉是使用A[~CLASS]{/*Code*/},但没有记录,并A[CLASS=]{/*Code*/}选择所有具有类名称为空字符串的锚点(例如,<A CLASS="" HREF="http://example.com/">This anchor has a class, but it's empty.</A>).
在这段代码中,我只希望无类链接为绿色.
<HTML>
<HEAD>
<LINK REL="stylesheet" TYPE="text/css" HREF="http://example.com/externalUneditableStyles.CSS" />
<STYLE>
A.deadLink{
color:#FF0000 !important;
}
A{
color:#00FF00;
}
</STYLE>
</HEAD>
<BODY>
<A HREF="http://fakesite.not/" CLASS="deadLink">This link is red, as specified by the CSS above.</A>
<A HREF="http://example.com/">This link is green, as specified by the CSS above.</A>
<A HREF="#/childpage/" CLASS="childLink">This is a link to a child page, and is styled by external uneditable …Run Code Online (Sandbox Code Playgroud)