我有一个要求,我必须调用抽象类的私有方法.
假设抽象类如下所示: -
public abstract class Base {
protected abstract String getName();
private String getHi(String v) {
return "Hi " + v;
}
}
Run Code Online (Sandbox Code Playgroud)
有些人可以告诉我有没有办法可以打电话getHi(可能是通过Reflection或其他方式),以便我可以测试出来?我正在使用Junit 4.12和Java 8
我已经解决了这个问题,但这里的方法在抽象类中并不是私有的.
我也经历过这个问题,即使这个问题也没有谈到抽象类中的私有方法.
我不是在这里问我们是否应该测试私有方法或者测试私有方法的最佳策略是什么.网上有很多关于此的资源.我只是想问一下如何在java中调用抽象类的私有方法.
在一个项目中,pom.xml我看到了如下的依赖
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
有人能让我知道slf4j-log4j12& 之间的区别是log4j什么?
我正在尝试使用 python 3.9.6 和 pip 21.3.1 在 Mac OS Monterey(版本 12.6)上安装 gevent 21.12.0。但它因以下错误而失败。有什么建议吗?
(venv) debrajmanna@debrajmanna-DX6QR261G3 qa % pip install gevent
Collecting gevent
Using cached gevent-21.12.0.tar.gz (6.2 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting greenlet<2.0,>=1.1.0
Using cached greenlet-1.1.3-cp39-cp39-macosx_10_9_universal2.whl
Collecting zope.event
Using cached zope.event-4.5.0-py2.py3-none-any.whl (6.8 kB)
Collecting zope.interface
Using cached zope.interface-5.4.0-cp39-cp39-macosx_10_9_universal2.whl
Requirement already satisfied: setuptools in /Users/debrajmanna/code/python/github/spotnana/venv/lib/python3.9/site-packages (from gevent) (60.2.0)
Building wheels for collected packages: gevent
Building wheel for gevent …Run Code Online (Sandbox Code Playgroud) 在Sonar 4.5.6(默认设置)中,我看到Duplicated Blocks消息为
我收到消息的java代码如下: -
package com.jabong.orchestratorservice.adapter.order.endpoints;
import com.jabong.orchestratorservice.adapter.order.request.UpdateOrderStatusReadyShipRequest;
public class UpdateOrderReadyShipEndPoint extends BaseOrderEndPoint {
private final static String API_NAME = "setStatusToReadyToShip";
@Override
public String getSourceEndPoint() {
return new StringBuilder("direct:").append(API_NAME).toString();
}
@Override
public String getDestinationEndPoint() {
return new StringBuilder("bean:orderHelper?method=").append(API_NAME).toString();
}
@Override
protected String getName() {
return API_NAME;
}
@Override
protected String getApiInputClassName() {
return UpdateOrderStatusReadyShipRequest.class.getName();
}
}
Run Code Online (Sandbox Code Playgroud)
UpdateOrderStatusReadyShipRequest 也不导入 UpdateOrderReadyShipEndPoint
package com.jabong.orchestratorservice.adapter.order.request;
public class UpdateOrderStatusReadyShipRequest extends BaseOrderRequest {
Run Code Online (Sandbox Code Playgroud)
有人能告诉我这是什么意思吗?
我在wiremock中定义了一个https存根,如下所示:-
public class HttpsMockMain {
public static void main(String[] args) {
WireMockServer mockServer = new WireMockServer(56789, 8443);
addStub(mockServer);
mockServer.start();
}
private static void addStub(WireMockServer mockServer) {
ResponseDefinitionBuilder responseBuilder = aResponse().withStatus(200).withBody(
"{\"message\":null,\"httpStatus\":0,\"status\":{\"httpStatusCode\":200,\"success\":true,\"errors\":[]},\"_metaData\":{\"urlParams\":{}},\"debugData\":null,\"data\":[\"01125851014\",\"01125851014\",\"debraj.manna@jabong.com\",\"03325853088\",\"03325853088\",\"debraj.manna@rediffmail.com\"],\"httpStatusToBeReturned\":200}");
mockServer.stubFor(post(urlPathEqualTo("/oms-api/")).willReturn(responseBuilder));
}
}
Run Code Online (Sandbox Code Playgroud)
每当我向https://localhost:8443/oms-api/发送 POST 请求时,我都会收到以下异常:-
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)
是否可以告诉 WireMock 接受任何证书?我在wiremock 1.58和java 1.8。
我正在寻找一种用于限制 REST HTTP 服务器传入请求速率的算法。我已经完成了“漏桶”和“通用信元速率算法:虚拟调度”
据我了解,漏桶有以下局限性:-
我浏览过这个实现“通用信元速率算法:虚拟调度”的博客。
有人可以向我解释以下内容吗:-
我想通过集群教程中create-cluster提到的脚本在 Mac 上设置一个 redis 集群。我无法在 Mac 上找到 create-cluster 脚本。
我正在使用redis 3.2.0安装通过brewon Mac OS X 10.11.6 (15G31)。
有人可以让我知道create-cluster脚本在 Mac 中的位置吗?
我正在使用 logback 1.2.3 。我的配置如下所示
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<Target>System.out</Target>
<encoder>
<pattern>%p [%d{yyyy-MM-dd HH:mm:ss,SSS}] %c{3}:[%C{1}:%M:%L] - [%t] - %m%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是我没有在日志中看到行号
INFO [2018-01-12 07:06:54] c.v.s.f.FlowStoreWarmer:[?:?:?] - [FlowStoreWarmer_flow_cache_warmup_thread] - no work to do for cid 19099
Run Code Online (Sandbox Code Playgroud)
有人可以让我知道出了什么问题吗?
我有一个形式的 protobuf 消息
enum PolicyValidationType {
Number = 0;
}
message NumberPolicyValidation {
optional int64 maxValue = 1;
optional int64 minValue = 2;
}
message PolicyObject {
required string key = 1;
optional string value = 2;
optional string name = 3;
optional PolicyValidationType validationType = 4;
optional NumberPolicyValidation numberPolicyValidation = 5;
}
Run Code Online (Sandbox Code Playgroud)
例如
policyObject {
key: "sessionIdleTimeoutInSecs"
value: "1800"
name: "Session Idle Timeout"
validationType: Number
numberPolicyValidation {
maxValue: 3600
minValue: 5
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以让我知道如何将其转换为Map如下所示:-
{validationType=Number, name=Session Idle …Run Code Online (Sandbox Code Playgroud)