我对仿制药并不完全熟悉,因此还没有找到解决方案.我有这三种方法:
public static List<ObjectA> objectAAsList(ObjectA ... items) {
return new ArrayList<>(Arrays.asList(items));
}
public static List<ObjectB> objectBAsList(ObjectB ... items) {
return new ArrayList<>(Arrays.asList(items));
}
public static List<ObjectC> objectCAsList(ObjectC ... items) {
return new ArrayList<>(Arrays.asList(items));
}
Run Code Online (Sandbox Code Playgroud)
如何创建一个单独的方法来获取T(或其他东西)的变量并创建它的ArrayList?
我正在阅读realworldhaskell,我来到第4章,书中谈到了"安全,谨慎地处理崩溃的功能".我正在尝试写一个安全版本init :: [a] -> [a].这是我得到的:
mySafeInit :: [a] -> Maybe [a]
mySafeInit [] = Nothing
mySafeInit (_:[]) = Just []
mySafeInit (x:xs) = ???
Run Code Online (Sandbox Code Playgroud)
我知道我做不了什么x : mySafeInit xs,因为那就像做a : Just [a](对吧?).我已经读过了fmap,所以我试过这个:
mySafeInit :: [a] -> Maybe [a]
mySafeInit [] = Nothing
mySafeInit (_:[]) = Just []
mySafeInit (x:xs) = fmap (:) (Just x) (mySafeInit xs)
Run Code Online (Sandbox Code Playgroud)
那保证会起作用吧?不,我正在努力理解为什么.我有一个Just a和一个Just [a],对吧?我不应该使用fmap它,给它功能(:)和我的两个maybes,然后Just [a]回来?
经过一些谷歌搜索,我确实发现这是有效的: …