小编San*_*oel的帖子

如何仅在 Mono 为空时执行操作并在非空时抛出错误

我正在尝试将项目转换为使用 Spring WebFlux,但在使一些基本业务逻辑正常工作时遇到了问题。我有一个负责检索/持久化记录的存储库层和一个负责应用程序业务规则的服务层。我想要做的(在服务中)层是检查给定用户名的用户是否已经存在。如果是这样,我想回复一个错误。如果没有,我想允许插入发生。

我在存储库层调用一个方法,该方法将通过用户名查找用户,如果找不到,它将返回一个空的 Mono。这按预期工作;但是,我尝试了 flatMap 和(defaultIfEmpty 和 swithIfEmpty)的各种组合,但无法编译/构建。

    public Mono<User> insertUser(User user) {
        return userRepository.findByUsername(user.username())
            .flatMap(__ -> Mono.error(new DuplicateResourceException("User already exists with username [" + user.username() + "]")))
            .switchIfEmpty(userRepository.insertUser(user));
    }
Run Code Online (Sandbox Code Playgroud)

我得到的错误是Mono<Object> cannot be converted to Mono<User>,所以swithIfEmpty似乎没有反映适当的类型,并且转换似乎也不起作用。

java spring spring-boot spring-webflux

10
推荐指数
2
解决办法
5404
查看次数

使用Attach Api时出错

在Eclipse中使用attach API时会在控制台中引发错误.

为了使用attach API,我在eclipse中安装了JRE,然后在当前JRE的外部jar选项中使用了包含tools.jar的edit选项.

但是当我尝试执行一个简单的程序时,它会抛出以下错误

java.lang.UnsatisfiedLinkError:java.library.path中没有附件com.sun.tools.attach.AttachNotSupportedException:在dynamicLoadingTest.VMAttach的com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:190)上没有安装任何提供程序.主要(VMAttach.java:17)

这是执行的简单程序.import java.io.IOException;

import com.sun.tools.attach.AttachNotSupportedException;
import com.sun.tools.attach.VirtualMachine;

public class VMAttach {


    public static void main(String[] args) {


        try {
            VirtualMachine vm = VirtualMachine.attach("6832");
        } catch (AttachNotSupportedException e) {
            System.out.println("This error");
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

提到的进程ID 6832是在系统上运行的Java应用程序

在将安装的jre更改为jdk后,会产生以下错误

Exception in thread "main" com.sun.tools.attach.AttachNotSupportedException: jvm.dll not loaded by target process
    at sun.tools.attach.WindowsVirtualMachine.<init>(WindowsVirtualMachine.java:46)
    at sun.tools.attach.WindowsAttachProvider.attachVirtualMachine(WindowsAttachProvider.java:52)
    at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:195)
    at dynamicLoadingTest.VMAttach.main(VMAttach.java:17)
Run Code Online (Sandbox Code Playgroud)

java instrumentation agent attach-api

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

如何防止JFrame关闭

我有一个Java GUI应用程序,使用反射和加载从该应用程序调用另一个Java GUI应用程序.它工作正常唯一的问题是,在关闭JFrame调用的应用程序时,主GUI应用程序框架也会关闭.如何防止主应用程序(框架)关闭?

我无法更改defaultCloseOperation调用的应用程序,但是可以对主应用程序进行更改.它与线程有什么关系吗?

在此输入图像描述

这是我执行目标应用程序的应用程序代码

public class ClassExecutor{

    private ClassLoaderOfExtClass classLoader;
    private byte[][] ArrayOfClasses;
    private String[] ArrayOfBinaryNames;
    @SuppressWarnings("rawtypes")
    private ArrayList<Class> loadedClasses;
    private ArrayList<String> loadedClasesNames;
    private Object[] parameters;


    @SuppressWarnings("rawtypes")
    public ClassExecutor() {
        classLoader = new ClassLoaderOfExtClass();
        new ArrayList<Class>();
        loadedClasses = new ArrayList<Class>();
        loadedClasesNames = new ArrayList<String>();
    }

    @SuppressWarnings("unchecked")
    public void execute(File[] file, String[] binaryPaths) {
        Object[] actuals = { new String[] { "" } };
        Method m = null;
        try {
            Field classesx=ClassLoaderOfExtClass.class.getDeclaredField("classes");
            classesx.setAccessible(true);
        } …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jframe windowlistener

7
推荐指数
3
解决办法
2751
查看次数

检测类文件时出错(asm.ClassWriter.getCommonSuperClass)

在仪器上获得错误

java.lang.RuntimeException: java.lang.ClassNotFoundException: Deposit
    at org.objectweb.asm.ClassWriter.getCommonSuperClass(Unknown Source)
    at org.objectweb.asm.ClassWriter.a(Unknown Source)
    at org.objectweb.asm.Frame.a(Unknown Source)
    at org.objectweb.asm.Frame.a(Unknown Source)
    at org.objectweb.asm.MethodWriter.visitMaxs(Unknown Source)
    at com.jConSequence.instrumentor.methodProber.AdddataBaseDetailsInstructions$AdddataBaseDetailsMethodInstructions.visitMaxs(AdddataBaseDetailsInstructions.java:131)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at com.jConSequence.instrumentor.PrintLoadedClasses.print(PrintLoadedClasses.java:31)
    at com.jConSequence.tooGUI.RevEnggToolGUI.jButton1ActionPerformed(RevEnggToolGUI.java:487)
    at com.jConSequence.tooGUI.RevEnggToolGUI.access$0(RevEnggToolGUI.java:471)
    at com.jConSequence.tooGUI.RevEnggToolGUI$1.actionPerformed(RevEnggToolGUI.java:127)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

java instrumentation classloader

6
推荐指数
1
解决办法
2491
查看次数

如何使用stacktrace查找Thread的start方法的调用类名

有人可以建议一些解决方案如果我想获得线程的start方法的调用类名称

例如,如果我在main中启动一个线程,堆栈跟踪将调用类名称作为线程,调用方法名称作为索引2运行.请帮助查找调用者类的正确名称和线程的方法名称.

java swing

5
推荐指数
1
解决办法
826
查看次数

如何在Java中以编程方式记录传递给方法的参数

如何在运行时记录传递给方法的参数?是否有任何Java库可用于此或任何可以引发监视它的异常?

java logging

4
推荐指数
1
解决办法
5371
查看次数

无法访问另一个QML的属性

我有一个QML文件

QMLFile1.qml

Rectangle{   

    id: LogicFile
    property int  characters
    property bool checked

}
Run Code Online (Sandbox Code Playgroud)

在第二个QML文件QMLFile2.qml中

如果我尝试像这样在第二个文件中实例化第一个文件

Rectangle{

   QMLFile1{

         // unable to access the 
         //properties here id: LogicFile
         // property int  characters
         //property bool checked
   }

}
Run Code Online (Sandbox Code Playgroud)

为什么我无法在第二个内部访问第一个QMLFile的属性。

但是,如果我直接在第二个文件中实例化firstQML文件,即不在任何元素(如矩形,项目等)内,则所有属性都可访问,为什么会这样?

qt qml

4
推荐指数
1
解决办法
3368
查看次数

如何在Java中平滑滚动JFrame

我的Java应用程序中有一个JFrame,其中包含JPanel我在运行时创建的一些绘图对象.问题是当滚动JFrame大数字时滚动速度变慢并且滚动条不能平滑移动.请注意我正在使用Graphics 2D对象并执行repaint滚动操作.

有没有办法平滑滚动动作JFrame.

这是代码的一部分

public class DiagramPanel implements MouseListener{

    int click=0;
    Point p1;
    Point p2;
    private Dimension panelDimension;
    .... // variables

    public void go() {
        p1 = new Point();
        p2 = new Point();

        JFrame f = new JFrame();
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        f.setSize(1200,500);
        panelx = new DiaPanel();
        panelx.setOpaque(true);
        panelx.setBackground(Color.white);
        panelx.setAutoscrolls(true);
        panelx.addMouseListener(this);


        JScrollPane scrollPane = new JScrollPane();

        // scrollPane.add(panelx);

        ClassRectangle tempRect = null;
        for (ClassRectangle rect : this.classRectangles) {
            tempRect = rect;
        } …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jscrollpane graphics2d

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

为什么QT的QList方法与std :: list兼容

使用诸如此类方法的原因是什么? void QList::push_back ( const T & value )

在QT中,当它做同样的事情时,append()文档意味着什么样的兼容性.任何人都可以详细说明

以下是QT 官方文件中的陈述

" 此功能是为STL兼容性而提供的.它相当于追加(值) "

c++ compatibility qt std

3
推荐指数
1
解决办法
1037
查看次数

如何访问同一应用程序的不同线程中的所有JFrame

如何JFrame 在Java应用程序的不同事件派发线程中访问不同的执行请通过此处提出的SSCCE 在这种情况下,JVM的新实例或反射是否有帮助

最后,正如我所提到的,如果将以下代码添加到第一个类中

Frame[] f2 = JFrame.getFrames();

for(Frame fx: f2){
    System.out.println(fx.getTitle());
    fx.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent we){
}
Run Code Online (Sandbox Code Playgroud)

如果在SSCCE中按顺序添加到第二个类,则只返回一个帧,返回两个帧,如果添加到第三个类,则返回所有帧.这是由于事件调度线程导致此行为背后的原因导致的问题.如何从主框架,即MyApp访问所有框架.

为什么JFrame.getFrames(); 返回awt帧说,例如,如果我想更改我的应用程序中所有JFrame的默认关闭操作,gerFrames返回awt帧,如果JFrame中的caset产生异常.

线程"main"中的异常java.lang.ClassCastException:[Ljava.awt.Frame; 无法转换为[Ljavax.swing.JFrame; at myApp.MYApp.main(MYApp.java:48)

java reflection swing jframe

2
推荐指数
1
解决办法
220
查看次数