小编Mar*_*eel的帖子

Java:如何实现私有抽象方法?

是否可以在Java中定义私有抽象类?Java开发人员如何编写如下构造?

public abstract class MyCommand {
    public void execute()
    {
        if (areRequirementsFulfilled())
        {
            executeInternal();
        }
    }
    private abstract void executeInternal();
    private abstract boolean areRequirementsFulfilled();
}
Run Code Online (Sandbox Code Playgroud)

java

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

'Class.forName("MY_JDBC_DRIVER")'的目的是什么?

我知道类加载对于在运行时使用类名加载类很有用.

但是,在我们的项目中使用JDBC时,我们知道我们将使用哪个驱动程序,并且主要是驱动程序管理器字符串是硬编码

我的问题是:为什么我们Class.forName("JDBC_DRIVER")在这里加载驱动程序?
为什么我们不能继续在类路径中添加驱动程序?因为我们知道我们将使用哪个驱动程序jar.

我相信Class.forName(JDBC_DRIVER)会加载驱动程序DriverManager.这是唯一的原因吗?

编辑1:

DriverManagerAPI文档指出,

作为其(DriverManager)初始化的一部分,DriverManager类将尝试加载"jdbc.drivers"系统属性中引用的驱动程序类.

应用程序不再需要使用显式加载JDBC驱动程序Class.forName().当前加载JDBC驱动程序的现有程序Class.forName()将继续工作而无需修改.

然后,当我使用oracle驱动程序以外; 我是否需要更改系统属性中的驱动程序名称字符串?

java jdbc

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

为什么更新 rmarkdown 包后重新启动 Rstudio 时出现错误?

安装包“rmarkdown”后,如果我关闭 Rstudio 而不关闭每个打开的选项卡,然后再次重新启动 Rstudio,将出现以下错误消息:

Error in .rs.parsePackageDependencies(contents, extension) : 
  object 'partition_yaml_front_matter' not found
Error in .rs.parsePackageDependencies(contents, extension) : 
  object 'partition_yaml_front_matter' not found
Run Code Online (Sandbox Code Playgroud)

它出现了两次,因为我在关闭 Rstudio 之前打开了三个选项卡,所以当我再次重新启动 Rstudio 时,三个选项卡会自动打开,但出现两个像上面这样的错误。如果我删除包“rmarkdown”,错误将在相同的操作下消失。为什么?

会话信息()

R version 4.2.1 (2022-06-23)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.4 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0

locale:
 [1] LC_CTYPE=en_AU.UTF-8       LC_NUMERIC=C               LC_TIME=en_AU.UTF-8        LC_COLLATE=en_AU.UTF-8    
 [5] LC_MONETARY=en_AU.UTF-8    LC_MESSAGES=en_AU.UTF-8    LC_PAPER=en_AU.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] rmarkdown_2.14.3

loaded …
Run Code Online (Sandbox Code Playgroud)

r rstudio r-markdown

22
推荐指数
1
解决办法
3866
查看次数

“此解决方案包含存在漏洞的软件包” - 如何确定哪些软件包包含漏洞?

当我打开解决方案资源管理器时,Visual Studio 会显示以下警告:

在此输入图像描述

当我单击“管理 NuGet 包”链接并滚动浏览 nuget 包时,我看不到任何有关具体哪些包包含漏洞的指示。如何准确找出哪些软件包包含漏洞?

visual-studio nuget-package

22
推荐指数
1
解决办法
4704
查看次数

无法访问脚本基类“org.gradle.kotlin.dsl.KotlinBuildScript”

当我使用 Gradle Kotlin DSL 创建一个空项目时,即使没有任何修改,它也会提示Cannot access script base class 'org.gradle.kotlin.dsl.KotlinBuildScript'. Check your module classpath for missing or conflicting dependencies该项目可以运行,但语法高亮和自动完成功能build.gradle.kts不起作用。

我试过的

系统

IntelliJ IDEA 2020.3.1 (Ultimate Edition)
Build #IU-203.6682.168, built on December 29, 2020
Licensed to Hykilpikonna Gui
Subscription is active …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea gradle kotlin

21
推荐指数
5
解决办法
5038
查看次数

docker 无法初始化 docker 桌面正在关闭 我该如何修复它

我已经安装了 Docker 更新版本,但无法打开 Docker。

通知是 Docker 无法初始化 docker 桌面正在关闭,我该如何修复它。

docker

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

为什么我们在连接数据库时使用Class.forName("oracle.jdbc.driver.OracleDriver")?

Class.forName("oracle.jdbc.driver.OracleDriver")连接数据库时的实际用途是什么?为什么我们不能导入相同的类,而是我们为什么要加载它.

java jdbc

20
推荐指数
3
解决办法
4万
查看次数

如何在Java 9中运行时访问javax.annotation.Resource

我有一个测试:

public class ResourceTest {
    @Test
    public void test() throws ClassNotFoundException {
        Class.forName("javax.annotation.Resource");
    }
}
Run Code Online (Sandbox Code Playgroud)

它试图访问javax.annotation.Resource.在java 8中它可以工作,但是在java 9中(我使用的是Oracle JDK 9)它失败了ClassNotFoundException.正如本文所解释的那样:@Resource注入在JDK9下停止工作,javax.annotation.ResourceJDK在Java 9中默认不可用.

我正在尝试使用模块描述符访问它:

module test {
    requires java.xml.ws.annotation;
    requires junit;
}
Run Code Online (Sandbox Code Playgroud)

在这里,我特意请求访问java.xml.ws.annotation模块(包含javax.annotation.Resource).但测试仍然失败.

当我删除该requires子句并添加包含的依赖项(作为库)时javax.annotations.Resource,它可以工作:

    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.1</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

当我同时添加它们(Maven依赖于pom.xmlrequires java.xml.ws.annotation)时,IDEA中的编译失败,并显示以下消息:

the unnamed module reads package javax.annotation from both java.xml.ws.annotation and java.annotation
Run Code Online (Sandbox Code Playgroud)

但Maven构建仍然成功!

如果我java.xml.ws.annotation通过命令行添加模块,它可以工作(没有Maven依赖和with requires子句):

mvn clean test …
Run Code Online (Sandbox Code Playgroud)

java java-9 java-module

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

检查模块类路径是否存在缺失或冲突的依赖项

这个想法表明代码中存在错误. 在此输入图像描述

所以,在整个项目中.但是,项目本身正常启动并且工作正常.知道这可能是什么?如果需要一个gradle文件来解决问题,我可以进行布局.

java intellij-idea kotlin

20
推荐指数
2
解决办法
8687
查看次数

升级到 Ubuntu 22.04 LTS 后 Apache2 将无法启动 - 无法加载 /usr/lib/apache2/moduleslibphp8.0.so

我对如何解决这个问题有点困惑。我对运行 Apache2 的服务器进行了发行版升级。

自从升级之后就没有用了。我运行了配置测试,下面是错误。我在之前版本的 Ubuntu (21.10) 上的配置没有任何问题

$ apache2ctl configtest
apache2: Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error on line 3 of /etc/apache2/mods-enabled/php8.0.load: Cannot load /usr/lib/apache2/modules/libphp8.0.so into server: /usr/lib/apache2/modules/libphp8.0.so: cannot open shared object file: No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.
Run Code Online (Sandbox Code Playgroud)

有什么想法从哪里开始吗?我对 Apache 还相当缺乏经验。

php apache webserver reverse-proxy ubuntu-22.04

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