我正在指导同事OCA-Java 7认证.他也参加了一门课程并在那里做了准备考试.其中一个问题是关于参考和对象类型.这是代码:
package com.company;
public class Vehicle implements Mobile {
public static void main(String[] args) {
Truck theTruck = new Truck();
Vehicle theVehicle = theTruck;
Mobile theMobile = theVehicle;
}
}
class Truck extends Vehicle {
}
interface Mobile {
}
Run Code Online (Sandbox Code Playgroud)
问题:什么是引用类型和对象类型theMobile?
以下是选择:
答案B被标记为正确答案......但是恕我直言答案C是对的.谁在这里错了?!
我想知道是否可以为IntelliJ的工具窗口设置一个自己的快捷方式.项目工具窗口的默认快捷方式是ALT + 1,我想更改此设置或为每个示例指定一个没有默认快捷方式的持久性工具窗口的快捷方式.提前致谢.
我想在我的应用程序中使用一个生产者,但我陷入了困境,我正在尝试注入bean.我得到了着名的WELD-001409错误.请减轻我对cdi制作人的理解.
这是我的界面:
@Named
public interface MessageSender {
void sendMessage();
}
Run Code Online (Sandbox Code Playgroud)
豆子:
public class EmailMessageSender implements MessageSender {
@Override
public void sendMessage() {
System.out.println("Sending email message");
}
}
Run Code Online (Sandbox Code Playgroud)
和制片人:
@SessionScoped
public class MessageSenderFactory implements Serializable {
private static final long serialVersionUID = 5269302440619391616L;
@Produces
public MessageSender getMessageSender() {
return new EmailMessageSender();
}
}
Run Code Online (Sandbox Code Playgroud)
现在我正在注入豆子:
@Inject
MessageSender messageSender;
Run Code Online (Sandbox Code Playgroud)
当我尝试部署项目时,我得到了WELD-001409错误,eclipse也说有多个注入点.
它适用于显式命名:
@Inject @Named("messageSender")
MessageSender messageSender;
Run Code Online (Sandbox Code Playgroud)
这个命名是否必要?
这可能吗:
@Inject
@MessageTransport(MessageTransportType.SMS)
public static MessageSender messageSender;
Run Code Online (Sandbox Code Playgroud)
当我试图访问这个静态变量时,我得到了一个NPE.所以我想知道,如果一般情况下不可能的话.
提前致谢.
在查看源文件时,我看到了两种数组初始化方法.我想知道它们之间是否存在差异
int[] value = new int[0];
Run Code Online (Sandbox Code Playgroud)
和
int[] value_next = new int[]{};
Run Code Online (Sandbox Code Playgroud)
?
我正在尝试使用JAX-RS和TomEE的Apache CXF实现(2.6.14)上传文件,但上传的文件始终为null.
这是代码:
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(@Multipart(value = "file") @NotNull Attachment attachment) throws UnsupportedEncodingException {
try {
System.out.println(attachment);
return Response.ok("file uploaded").build();
} catch (Exception ex) {
logger.error("uploadFile.error():", ex);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
Run Code Online (Sandbox Code Playgroud)
和一个非常简单的HTML文件上传:
<form action="http://127.0.0.1:8080/eegrating/restapi/cashflowparameter/upload" method="post" enctype="multipart/form-data">
<p>File:<br>
<input name="file" type="file" size="50" maxlength="100000" accept="text/*">
<input type="submit" name="Submit" value="Send">
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
请求标题看起来很好:
------ WebKitFormBoundaryOCleIjB2JgeySK0w Content-Disposition:form-data; NAME = "文件"; filename ="git.txt"Content-Type:text/plain
但附件始终为空.有什么建议?提前致谢.
我有一个界面
@InterceptorBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.TYPE })
public @interface LoggingInterceptorBinding {
}
Run Code Online (Sandbox Code Playgroud)
和一个班级:
@LoggingInterceptorBinding
@Interceptor
public class LoggingInterceptor implements Serializable {
@AroundInvoke
public Object onMethodCall(InvocationContext context) throws Exception {
try {
System.out.println("Log before Method");
return context.proceed();
} finally {
System.out.println("Log after Method");
}
}
Run Code Online (Sandbox Code Playgroud)
和一个带注释的方法:
@LoggingInterceptorBinding
public void sayHello(String name)
Run Code Online (Sandbox Code Playgroud)
是否可以在拦截器"onMethodCalls"-method中从sayHello获取参数"name"?
我有一个从db获取一些对象的方法:
public <T extends Persistable> List<T> getAllEntitiesEager(
Class clazz, String sortField, SortOrder sortOrder,
Map<String, Object> filters, boolean invalidate);
Run Code Online (Sandbox Code Playgroud)
此方法返回类型中的对象列表clazz.返回的所有对象都实现了接口Persistable.现在我需要一个具体类型列表.这甚至可能吗?
例:
Class UserEntity实现了Persistable,我想做类似的事情:
List<UserEntity> userList = (List<UserEntity)
someObject.getAllEntitiesEager(UserEntity.class,...)
Run Code Online (Sandbox Code Playgroud) 在 Java EE 中,我使用 EJB 计时器服务来安排任务:
@Stateless
public class TestSchedule {
@Schedule(second = "*/30", minute = "*", hour = "*")
public void processFiles() {
}
}
Run Code Online (Sandbox Code Playgroud)
由于 Eclipse Micro Profile 不支持这种方法...实现这一点的常用方法是怎样的?
websphere-liberty payara payara-micro microprofile jakarta-ee
java ×6
cdi ×3
java-ee ×2
arrays ×1
cxf ×1
generics ×1
jakarta-ee ×1
microprofile ×1
object-type ×1
payara ×1
payara-micro ×1
rest ×1
web-services ×1
weld ×1