using System.Text.RegularExpressions; using CodePlay.Core.Interfaces; using CodePlay.Core.Models; namespace CodePlay.Core.Pipeline.Converters; /// /// Lambda 表达式转换器 - C# lambda → Java lambda /// public class LambdaConverter : ILineConverter { public int Priority => 50; public string Convert(string line, ConversionContext context) { var result = line; // 单参数 lambda: x => expr result = Regex.Replace(result, @"(\w+)\s*=>\s*\{", "$1 -> {"); result = Regex.Replace(result, @"(\w+)\s*=>(?!\s*\{)", "$1 -> "); // 多参数 lambda: (x, y) => expr result = Regex.Replace(result, @"\(([\w,\s]+)\)\s*=>\s*\{", "($1) -> {"); result = Regex.Replace(result, @"\(([\w,\s]+)\)\s*=>(?!\s*\{)", "($1) -> "); return result; } }