是否有任何工具可以提供Java动态代码生成并且还支持泛型?
例如,Javassist是我需要的工具,但它不支持泛型.
我写了一个使用Java 6 Compiler API的小型lib,但据我所知它依赖于JDK.有没有办法指定另一个编译器?或者只向我的应用程序提供我需要使用Java Compiler API调用的部分?
我做了一个简单的应用程序来使用Java API发送电子邮件,并提出一个问题:
有没有办法找出SMTP主机知道将登录发送电子邮件的人的电子邮件地址?还有港口?
例如,如果发件人的电子邮件地址是sender@gmail.com,则SMTP主机为smtp.gmail.com,端口为465.如果发件人的电子邮件地址为sender@yahoo.com,则SMTP主机为smtp .yahoomail.com和25端口.
假设我不知道这个,有没有办法使用Java API类找到这些信息?请注意我是java的新手:)
提前致谢,
安德列亚
谢谢你的回答.我试过做以下事情:
public static String getMXRecordsForEmailAddress(String eMailAddress) {
String returnValue = null;
try {
String hostName = getHostNameFromEmailAddress(eMailAddress);
Record[] records = new Lookup(hostName, Type.MX).run();
if (records == null) {
throw new RuntimeException("No MX records found for domain " + hostName + ".");
}
// return first entry (not the best solution)
if (records.length > 0) {
MXRecord mx = (MXRecord) records[0];
returnValue = mx.getTarget().toString();
}
} catch (TextParseException e) {
throw new …Run Code Online (Sandbox Code Playgroud) 如果我编写了ToIntFunction接口,我想在接口中编码它只是一个返回原始int的函数,如下所示:
@FunctionalInterface
public interface ToIntFunction<T> extends Function<T, Integer> {
int applyAsInt(T value);
@Override
default Integer apply(T value) {
return Integer.valueOf(applyAsInt(value));
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道,有没有令人信服的理由让Java 8 API设计人员选择将原始备选方案与Function完全分开?是否有一些证据表明他们认为这样做并决定反对呢?我想类似的问题至少包括其他一些"特殊"功能接口,如Consumer(可能是Function <T,Void>)和Supplier(Function <Void,T>).
我没有深入和彻底地考虑过这个问题的所有后果,所以我可能会遗漏一些东西.
如果ToIntFunction(和其他原始泛型函数接口)与Function有这种关系,它将允许一个人在预期使用Function参数的位置使用它(想到的是与其他函数的组合,例如调用myFunction.compose(myIntFunction))或者当在如上所述的这种自动(非)装箱实现就足够时避免在API中编写几个专用函数.
这与这个问题非常相似:为什么Java 8的Predicate <T>不扩展Function <T,Boolean>但我已经意识到答案可能因语义原因而不同.因此,我正在重新设计这个函数的简单原始替代方案的问题,其中不存在任何语义,只是原始与包装类型,甚至消除了空包装对象的可能性.
我有一些需要调用Java API的Scala代码
Java API接受可能为null的参数.我的Scala当然使用了Option.
举例来说,假设我有一个Java对象的构造Foo(Integer),其中Integer可能null.我想给Scala打电话bar: Option[Int].
我试过这个
import scala.collection.JavaConversions._
import scala.collection.JavaConverters._
val foo = Foo( bar.getOrElse(null) )
Run Code Online (Sandbox Code Playgroud)
但得到了这个编译错误
Error:(335, 44) type mismatch;
found : Any
required: Integer
bar.getOrElse(null),
Run Code Online (Sandbox Code Playgroud)
这样做的正确习惯是什么?
我在java中有一个项目,我使用弹性搜索2.3.3索引数据.索引有两种类型.
我的索引文档看起来像:
{
"took": 10,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 3,
"max_score": 1,
"hits": [
{
"_index": "test_index",
"_type": "movies",
"_id": "uReb0g9KSLKS18sTATdr3A",
"_score": 1,
"_source": {
"genre": "Thriller"
}
},
{
"_index": "test_index",
"_type": "drama",
"_id": "cReb0g9KSKLS18sTATdr3B",
"_score": 1,
"_source": {
"genre": "SuperNatural"
}
},
{
"_index": "index1",
"_type": "drama",
"_id": "cReb0g9KSKLS18sT76ng3B",
"_score": 1,
"_source": {
"genre": "Romance"
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我需要删除特定名称的索引和类型.
例如: -从上面的doc,我想删除名为"test_index"的索引并输入"drama". …
我想要一个像我这样的API的图像 localhost:8080:/getImage/app/path={imagePath}
当我点击这个API时,它会返回一个Image.
这可能吗?
实际上,我试过这个,但它给了我一个错误.这是我的代码,
@GET
@Path("/app")
public BufferedImage getFullImage(@Context UriInfo info) throws MalformedURLException, IOException {
String objectKey = info.getQueryParameters().getFirst("path");
return resizeImage(300, 300, objectKey);
}
public static BufferedImage resizeImage(int width, int height, String imagePath)
throws MalformedURLException, IOException {
BufferedImage bufferedImage = ImageIO.read(new URL(imagePath));
final Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.setComposite(AlphaComposite.Src);
// below three lines are for RenderingHints for better image quality at cost of
// higher processing time
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics2D.drawImage(bufferedImage, 0, 0, width, height, null);
graphics2D.dispose(); …Run Code Online (Sandbox Code Playgroud) 我使用Scanner类来读取多个类似的文件.我想扩展它以确保它们都使用相同的分隔符,我还可以添加所有对它们都有效的skipUntilYouFind(String thisHere)等方法.
我可以创建一个包含它们的实用程序类,或者将Scanner类作为变量嵌入到另一个类中,但这更麻烦.
我正在寻找一个全面的Java API,可以转换各种格式和比特率的音频.
例如WAV(6kHz至48kHz)L16 /音频--- TO --- WAV(RIFF标题)8KHz 8位单声道A-law/U-law AIFF(6kHz至48kHz)L16 /音频--- TO-- - WAV(RIFF标头)8KHz 8位单声道A-law/U-law
和其他语音音频格式.
关于音频转换的类似Java库的任何其他建议也受到欢迎.
我正在使用弹性搜索传输客户端连接到弹性搜索.我尝试过两种方法
1)在我的整个应用程序中共享Singleton客户端.响应时间在1-2秒之间
2)每次调用Elastic Search的新客户端实例,大约需要7秒才能响应.具体而言,有5个类需要连接ES群集,此方法为每个类创建一个新的传输客户端.
1)在弹性搜索方面是一个很好的方法,因为通常不建议使用单例数据库连接对象吗?
是否有可用于Elastic Search的连接池机制,就像我们有关系数据库的DBCP一样?
我正在尝试使用Java API实现弹性搜索的内部命中,但我找不到任何关于它的文档或其他人正在使用的示例.我有我的JSON搜索,其工作方式如下:
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"nested": {
"path": "locations",
"filter": {
"geo_distance": {
"distance": "20km",
"locations.address.geoLocation": {
"lat": 38.07061,
"lon": -76.77514
}
}
},
"inner_hits": {}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在elasticsearch库中看到了InnerHitsBuilder和addInnerHit方法,但我找不到有关如何使用它们的文档.
java-api ×10
java ×7
spring ×2
audio ×1
dbconnection ×1
dynamic-code ×1
final ×1
hit ×1
jakarta-mail ×1
java-8 ×1
nested ×1
null ×1
oop ×1
restful-url ×1
scala ×1
scala-option ×1