应用程序中有组件使用com.sun.java.swing.SwingUtilities2现在我明白不应该使用此类,但它是系统中使用它的组件.
因此,由于它在Java 6中不再可用,我得到NoClassDefFoundError.如何在不必升级组件的情况下解决此问题,因为我还不知道这是否是一个选项.
假设我有下表:
ID | parentID | MoreStuff
1 | -1 | ...
2 | 1 | ...
3 | 1 | ...
4 | 2 | ...
5 | 1 | ...
Run Code Online (Sandbox Code Playgroud)
如何生成SQL SELECT语句以查明特定行是否包含子项?换句话说,我想知道ID 1是否有孩子,在这种情况下它有3个孩子.
我不确定如何创建SQL语句:
SELECT ID, hasChildren FROM myTable;
Run Code Online (Sandbox Code Playgroud)
在上面的SQL SELECT语句中,hasChildren会替换什么?
我有以下JLabel代码:
JLabel someJLabel = new JLabel("<html>first line<br>second line</html>");
someJLabel.setFont(new Font("Arial", Font.PLAIN, 16));
Run Code Online (Sandbox Code Playgroud)
我想做的是能够控制两条线之间的线高/间距。
PS:我也考虑过使用段落而不是换行符,但这是同一回事。而且我不知道您是否可以在不使用CSS的情况下在html标记中执行此操作(您不能在Java Swing中的JLabel中的html代码中使用css)。
是否有可能以编程方式确定Windows防病毒解决方案是否在Java中是最新的?
对于以下自定义Java注释
@CustomAnnotation(clazz=SomeClass.class)
public class MyApplicationCode
{
...
}
Run Code Online (Sandbox Code Playgroud)
我基本上希望能够在编译时获取MyApplicationCode的Class对象和clazz参数,以确认一些编码约定的一致性(另一个故事)。基本上,我希望能够在注释处理器中访问MyApplicationCode.class和Someclass.class代码。我快到了,但我想念什么。我有
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.SOURCE)
public @interface CustomAnnotation
{
public Class clazz();
}
Run Code Online (Sandbox Code Playgroud)
然后我有处理器:
public class CustomAnnotationProcessor extends AbstractProcessor
{
private ProcessingEnvironment processingEnvironment;
@Override
public synchronized void init(ProcessingEnvironment processingEnvironment)
{
this.processingEnvironment = processingEnvironment;
}
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment environment)
{
Set<? extends Element> elements = environment.getElementsAnnotatedWith(ActionCommand.class);
for(Element e : elements)
{
Annotation annotation = e.getAnnotation(CustomAnnotation.class);
Class clazz = ((CustomAnnotation)annotation).clazz();
// How do I get the actual CustomAnnotation clazz? …
Run Code Online (Sandbox Code Playgroud) 当我使用JDK7或JDK6在Eclipse中编译和运行我的项目时,一切都很顺利.然而,在我使用ANT构建它然后尝试使用系统JDK7运行它之后,我收到错误:
方法myClass.myMethod()中的分支目标25处的堆栈映射帧不一致[[Ljava/lang/Object; 在抵消14
我到处寻找,在StackOverFlow上找到了几个不错的问题:
两者基本上都建议添加-XX:-UseSplitVerifier
作为JVM选项,它确实解决了这个问题.我仍然不完全理解为什么,但显然这个错误报告可能会有所帮助.不幸的是我仍然没有得到它......
我确实注意到有人使用面向方面编程的一个问题,这让我觉得我正在使用Guice(谷歌的DI框架),这可能导致问题,但我看不出如何.它假设支持JDK7.
我也在使用Proguard,但也可以使用JDK7.
无论如何,此时我不知道为什么这个解决方法是有效的,除了它基本上回到以前的JDK(在这种情况下是JDK6)版本时代码的某些部分试图使用字节代码(这就是为什么我认为它与DI)代码有关.但我仍然无法建立正确的链接.我也可以离开!!
如果有人可以解释发生了什么或为什么会发生这种情况,我会非常感激.此外,我真的很讨厌必须使用解决方法,因为这不是我认为的长期解决方案.
我有:
@echo off
echo before
IF 1 == 1 (
echo got it
) ELSE (
echo missed
}
echo done
Run Code Online (Sandbox Code Playgroud)
此代码只打印"之前"而没有其他内容.我不知道我错过了什么......
看起来我们的首选项表中可能有一些重复的值,所以我想删除每个用户的所有重复条目,但是更新的用户.我花了很长时间试图想出一个解决方案而且我一直在圈子里跑来跑去.我已经尝试了max,分组,子查询等.删除最高的很容易,但不是最高的.特别是对每个用户而言
所以在数据库中我可能有:
id : name: value : userId
1 : sortOrder: Asc : 1
2 : sortOrder: Desc : 1
3 : sortOrder: Asc : 2
4 : something: value2 : 1
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,我想删除第一行,因为它与User 1重复并具有最高的id并保留所有其余的列.
所以我知道它至少是group by的子查询,但我无法弄明白.到目前为止,我有:
SELECT
MAX(id),
name
FROM
preference
GROUP BY
name
Run Code Online (Sandbox Code Playgroud)
这给了我一个我想保留的列表,但它仍然错过了每个用户.所以如果我为每个用户提供它,我有点想要相反.但是我不相信我可以在子查询中使用<>.
我最终要做的是删除所有具有较低ID的同一用户的重复条目.
我知道你可以使用 F2 跳转到同一个文件中的下一个错误,但是你如何跳转到项目中的下一个错误,即使它在不同的文件中?
我已经完成了影响父类的主要重构,因此需要编辑所有子类。有没有一种简单的方法可以使用热键从一个错误转到下一个错误,即使是在下一堂课中?
例如,在 Vaadin 8 中,您只需执行以下操作即可按屏幕上显示的顺序获取列的列表。
String columnOrderPreference = ((List<Grid.Column>)grid.getColumns()).stream()
.map(Grid.Column::getId)
.collect(Collectors.joining(VALUE_SEPARATOR));
Run Code Online (Sandbox Code Playgroud)
这特别方便,因为您可以保存该字符串,然后调用:
grid.setColumnOrder(columnOrderPreference.split(VALUE_SEPARATOR));
Run Code Online (Sandbox Code Playgroud)
在 Vaadin 14 中(忽略getId()
现在应该使用的getKey()
),这不再可能,因为getColumns()
列表现在总是按照它们添加的顺序而不是它们的排序顺序返回。您仍然可以调用setColumnOrder(...)
(使用不同的参数 - list of grid.getColumnByKey(columnKey)
),但我无法弄清楚如何按照显示的顺序获取列列表。
这对于尝试保存用户返回同一页面(使用网格)时设置/更改的列顺序特别有用。