主要的Web应用程序框架(Rails,Django等)是否具有提供登录,注册,创建用户名,更改密码和管理丢失密码的功能的库?
在我看来,这是一些标准库应该支持的常用功能,但我在搜索中没有看到任何内容.我了解OpenID,但我对非OpenID解决方案感兴趣.
我是一名Java专业人士.现在我想为Android平台编写一个应用程序.
我正在运行Jfugue测试程序,这里是代码:
package ge;
import org.jfugue.*;
public class GE {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Player player = new Player();
Pattern pattern = new Pattern("C D E F G A B I[MARIMBA]");
player.play(pattern);
System.exit(0); // If using Java 1.4 or lower
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止代码确实有效,也就是说,它编译并播放音符.但是,我可以随心所欲地改变乐器,我总是得到钢琴音乐.
我怎么能改变这个?
我正在编写一个从CSV文件中获取数据的Java程序.对于每一行数据,我需要使用相应的标题作为键将每个数据元素放入映射中.例如,headerRow [7]和dataElements [7]应该是地图中的键值对.
下面是我传统上使用Java编写的代码:
private Map<String, Double> readLine(String[] headerRow, String[] dataElements) {
Map<String, Double> headerToDataMap = new HashMap<>();
for (int i=0; i < nextLine.length; i++) {
headerToDataMap.put(headerRow[i], Double.valueOf(dataElements[i]));
}
return headerToDataMap;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以使用Java 8流编写这段代码 - 请记住我是在同时迭代两个数组?
使用Java Stream API,有没有办法进行额外的处理来调整传递给方法引用的任何值?
我举两个例子.
例1.
在第一个例子中,我从a开始Stream<Path>,我想返回一个Map<String, Path>地图中的键是使用另一个采用String文件名(而不是a Path)的函数处理文件名的版本.特别:
public Map<String, Path> createMap(Path sourceFolder, PathMatcher filter) {
return stream.filter(filter::matches)
.collect(Collectors.toMap(FilenameHelper::parseFilename, Function.identity()));
Run Code Online (Sandbox Code Playgroud)
parseFilename(String filename)采用String文件名,但当然方法引用获取Path.我想说些什么,FilenameHelper::parseFilename(((Path)Function.identity()).toFile().getName())但这不起作用(Eclipse说:"作业的左侧必须是变量").我可以通过创建一个新方法来解决这个问题,这个方法Path只需要做,return parseFilename(path.toFile().toName())但这并不酷.
例2.
在第二个例子中,我有rows一个List<List<String>>>表示数据表(行,然后是列)的表示.我有一个方法应该List<String>为每个第n行返回该表中特定列的组成.我想做的事情如下:
public List<String> getDataFromColumn(String columnName, int nth) {
/// Without a clause at ???, this returns a List<List<String>>
return IntStream.range(0, rows.size())
.filter(n -> n % nth == 0) // Get every nth row
.mapToObj(rows::get)
.???
.collect(Collectors.toList()); …Run Code Online (Sandbox Code Playgroud)