小编Mik*_*kis的帖子

unicode字符在IntelliJ IDEA控制台中显示为问号

我正在尝试使用System.out编写unicode字符(♠),而是打印一个问号.

如何显示正确的unicode字符而不是问号?

我在Windows上使用IntelliJ IDEA,并尝试在IDE中打印.

java unicode console intellij-idea

11
推荐指数
3
解决办法
2万
查看次数

属性构造函数的默认值?

我收到这个错误,

错误CS0182:属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式

当我尝试写这样的东西时

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class UrlAttribute : Attribute
{
    public UrlAttribute(string pattern, string name=null)
    {
        // ...
Run Code Online (Sandbox Code Playgroud)

它甚至没有显示行号,但是当我拿出那个=null位时它会消失.

实际上,错误只发生当我提供一个默认值,并依靠它(即我忽略它)像这样

    [Url("/index")]
Run Code Online (Sandbox Code Playgroud)

我很想知道为什么这个?"null"如何不是常量表达式?

c# attributes

11
推荐指数
1
解决办法
1887
查看次数

查找覆盖2d数组中某些元素的最小矩形数的算法

简化后,我要解决以下问题:

你有一个填充0和1的二维数组.找到最小数量的矩形,使它们覆盖所有1.矩形不应重叠.

函数签名可能如下所示: List<Rectangle> FindCoveringRectangles(bool[,] array)

我已经有一个"足够好"的解决方案,但并不总能找到最小数量的矩形.我想知道是否有一些众所周知且有效的算法可用于解决这个问题?

例:

输入数组:

..........
.1.....11.
.......11.
...111....
...111....
...111....
....1111..
....1111..
......11..
..........
Run Code Online (Sandbox Code Playgroud)

(为了便于阅读,将0替换为点)

可能导致以下矩形:

(2,2,2,2),
(2,8,3,9),
(4,4,6,6),
(7,5,8,8),
(9,7,9,8)
Run Code Online (Sandbox Code Playgroud)

(上,左,下,右),基于1

可以有多个解决方案,但其中一个就足够了.

algorithm

11
推荐指数
1
解决办法
3404
查看次数

JUnit 4和Suspend-on-Exception

当我的代码中抛出未捕获的异常时,我习惯让调试器停止在throw语句中,以便我可以检查局部变量以及抛出异常时所涉及的所有对象的成员.随着IntelliJ IDEA的,这可以通过将要完成运行,查看断点,选择异常断点选项卡,检查任何异常,并确保在捕捉到异常复选框取消选中,而uncaught异常复选框被选中.使用EclipseVisual Studio(用于C#),它是不同的,但沿着相同的路线.

使调试器以这种方式运行的能力非常有用; 实际上非常有用,我相应地构建了我的程序的主循环:在发布版本中,主循环当然嵌入在try-catch-all中; 但是在调试版本中,主循环中没有try-catch块,因此在我的程序中任何地方都没有捕获的任何异常都将保持未被捕获状态,因此调试器将在抛出它们时暂停我的程序.

但是,在使用JUnit测试我的Java类时,我遇到了一个问题:调试器不会停止任何异常.相反,发生的事情是,不仅预期的,而且意外的异常也会被自动捕获,并且我会得到一个事后异常堆栈跟踪,以尝试从中理解.那不是很酷.

我曾经认为这种情况正在发生,因为JUnit利用java.lang.reflect.Method.invoke()它捕获所有异常并将它们转换为TargetInvocationExceptions,但后来我编写了自己的自定义JUnit运行程序,它个人知道我的测试类并直接调用它的方法Method.invoke(),问题仍然存在.这意味着问题出现在核心JUnit中.

那么,其他人是否也有同样的问题?有没有人知道一个解决方案,以便我们可以让调试器在使用JUnit进行测试时暂停程序执行意外异常?

相关(未答复)问题:在Eclipse Junit测试运行器中暂停未捕获的运行时异常

相关(未答复)问题:如何在jUnit测试用例中进入调试器?

相关(部分回答)问题:使用jUnit打破Eclipse中的异常(接受的答案是"如果你在jUnit中调试单个方法,断点就会开始工作.如果在jUnit中调试整个类或包,调试器不会不行.")

java reflection debugging junit exception-handling

9
推荐指数
1
解决办法
2720
查看次数

java警告:Varargs方法可能会导致来自不可恢复的varargs参数的堆污染

我在JDK 1.8上使用IntelliJ IDEA和javac.我有以下代码:

class Test<T extends Throwable>
{
    @SafeVarargs
    final void varargsMethod( Collection<T>... varargs )
    {
        arrayMethod( varargs );
    }

    void arrayMethod( Collection<T>[] args )
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

IntelliJ IDEA不会将上述代码中的任何内容突出显示为警告.但是,在编译时,"消息"视图的"生成"选项卡中会显示以下行:

警告:(L,C)java:Varargs方法可能会导致不可恢复的varargs参数varargs造成堆污染

注意#1:我已经指定了@SafeVarargs.

注意#2:Warning:(L,C)指向varargs作为参数传递给arrayMethod()

假设我知道我在做什么,并且假设我非常确定不存在堆污染,或者我保证不会以某种可能导致堆污染的时髦方式调用此方法,我需要什么要压制此警告消息?

注意:有关varargs方法的stackoverflow存在大量问题,但似乎没有解决此特定问题的问题.事实上,整个interwebz对这个特定问题的答案似乎相当差.

java generics intellij-idea variadic-functions

9
推荐指数
2
解决办法
2167
查看次数

如何使用lambda初始化地图?

我想在单个语句中声明一个完全填充的映射字段(可能包含几个嵌套语句),如下所示:

private static final Map<Integer,Boolean> map = 
    something-returning-an-unmodifiable-fully-populated-HashMap;
Run Code Online (Sandbox Code Playgroud)

匿名初始化程序不会这样做,因为调用返回新填充映射的函数不会这样做:它们需要两个顶级语句:一个用于变量声明,一个用于方法或初始化程序.

双花括号({{}})成语将起作用,但它会创建一个扩展的全新类HashMap<>,我不喜欢这个代表的开销.

Java 8的lambdas是否可能提供更好的方法来实现这一目标?

java collections lambda dictionary java-8

9
推荐指数
2
解决办法
2万
查看次数

如何将控件设置为透明背景

如何将控件的背景设置为透明?

我现在正在谈论LabelText控制,但可以是我在GUI中看到的任何标准控件.

更新:如所选答案所述,我只需在设置背景图像后添加一行(在我的情况下):

__PRE__

完整的代码片段非常有助于解决问题.

java swt controls transparent

8
推荐指数
1
解决办法
1万
查看次数

无法从批处理脚本中的失败MOVE命令获取错误级别

我对这个论坛很新,所以我首先要感谢你在我成为会员之前为我提供解决方案:).

所以我有这个代码:

for %%a in ("%PBpath%") do ( 
move "network location 1 files" "network location 2" >NUL
if ERRORLEVEL 0 (echo Diagram %%~na.pdf was successfuly archived) else ( echo            Diagram %%~na.pdf was not archived )
ECHO.%errorlevel%
          )
Run Code Online (Sandbox Code Playgroud)

问题是我无法得到不同于0的错误级别.即使要从位置丢失要复制的文件,我仍然可以回显成功存档的消息.我在论坛上搜索了类似的问题,但由于某些原因我无法使其工作.copy和ping命令之间是否有不同之处(ping命令在errorlevel中返回正确的退出代码),因为我无法通过复制或移动来获取它...

谢谢!安德鲁

batch-file exit-code errorlevel

7
推荐指数
1
解决办法
8636
查看次数

JPA with Hibernate 5:以编程方式创建EntityManagerFactory

这个问题是专门关于编程创建JPA EntityManagerFactory由Hibernate支持5,这意味着无需配置XML文件没有使用Spring.此外,这个问题具体是关于EntityManagerFactory 使用Hibernate Interceptor创建一个.

我知道如何以SessionFactory我想要的方式创建Hibernate ,但我不想要Hibernate SessionFactory,我想要一个EntityManagerFactory由Hibernate支持的JPA SessionFactory.鉴于EntityManagerFactory有一种方法可以获得底层证券SessionFactory,但如果你拥有的是一个SessionFactory并且所有你想要的东西都是EntityManagerFactory它的包装,看起来你运气不好.

Hibernate版本4.2.2 Ejb3Configuration已被弃用,但似乎没有其他方式以编程方式创建EntityManagerFactory,所以我做了这样的事情:

@SuppressWarnings( "deprecation" )
EntityManagerFactory buildEntityManagerFactory(
        UnmodifiableMap<String,String> properties,
        UnmodifiableCollection<Class<?>> annotatedClasses, 
        Interceptor interceptor )
{
    Ejb3Configuration cfg = new Ejb3Configuration();
    for( Binding<String,String> binding : properties )
        cfg.setProperty( binding.key, binding.value );
    for( Class<?> annotatedClass : annotatedClasses )
        cfg.addAnnotatedClass( annotatedClass );
    cfg.setInterceptor( interceptor ); …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa hibernate-entitymanager hibernate-5.x

7
推荐指数
1
解决办法
4096
查看次数

在 Rider IDE 中调试时重新加载 WPF XAML?

我正在尝试使用 JetBrains Rider IDE 使用 WPF 进行 Windows 开发。(我正处于 30 天试用期的第 1 天。)

因此,当我运行(调试)我的应用程序时,我注意到屏幕上有些东西不对。

我从 Rider 中打开相应的 XAML 文件,我以一种应该会产生很大视觉差异的方式对其进行编辑,但在我的应用程序的屏幕上没有任何反应。我从 Rider 中保存了 XAML 文件,但我的应用程序仍然没有任何反应。我重新启动我的应用程序,然后我看到了更改。

使用 Visual Studio,每次更改 XAML 时都会热重载它,因此我无需重新启动应用程序就可以查看我在做什么。这是越野车,但总比没有好。

所以:

  1. Rider 有这个功能吗?

  2. 是否有一些魔术可以实现它?

  3. 我注意到在 Xamarin 的上下文中,Rider 似乎支持 XAML 的热重载,但我正在使用 WPF,所以我认为这与我无关;我的假设正确吗?

  4. DotNet 中是否有任何解决方案可以以编程方式完成相同的事情?(例如,我单击我的应用程序上的一个按钮,我的应用程序以某种方式重新加载其 XAML。)

.net wpf xaml rider

7
推荐指数
1
解决办法
1989
查看次数