java mono是什么,让我们一起了解一下?
Mono是包含0或者1个元素的异步序列。该序列中同样可以包含与Flux相同的三种类型的消息通知,Flux和Mono之间可以进行转换,对一个Flux序列进行计数操作,得到的结果是一个 Mono
如何通过Mono静态方法创建?
1、empty():创建一个不包含任何元素,只发布结束消息的序列。
2、just():可以指定序列中包含的全部元素。创建出来的 Mono序列在发布这些元素之后会自动结束。
3、justOrEmpty():从一个 Optional 对象或可能为 null 的对象中创建 Mono。只有 Optional 对象中包含值或对象不为 null 时,Mono 序列才产生对应的元素。
4、error(Throwable error):创建一个只包含错误消息的序列。
5、never():创建一个不包含任何消息通知的序列。
6、fromCallable()、fromCompletionStage()、fromFuture()、fromRunnable()和 fromSupplier():分别从 Callable、CompletionStage、CompletableFuture、Runnable 和 Supplier 中创建 Mono。
7、delay(Duration duration)和 delayMillis(long duration):创建一个 Mono 序列,在指定的延迟时间之后,产生数字 0 作为唯一值。
实战操作,示例代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Android.App; using Android.Content; using Android.OS; using Android.Runtime; using Android.Views; using Android.Widget; using Java.Util; namespace AndroidHotelServiceTest { [Activity(Label = "My Activity")] public class ActivityCalendar : Activity { protected override Dialog OnCreateDialog(int id) { if (id == 1) { return new DatePickerDialog(this, new DDialogLisetener(this), 2013, 11, 11); } return base.OnCreateDialog(0); } protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Create your application here SetContentView(Resource.Layout.CalendarView); Button button = FindViewById(Resource.Id.btClose); button.Click += delegate { Intent intent = new Intent(); intent.SetClass(this, typeof(ActivityHotel)); StartActivity(intent); }; ShowDialog(1); } } public class DDialogLisetener : DatePickerDialog.IOnDateSetListener { private Context _context; public DDialogLisetener(Context context) { _context = context; } public void OnDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { String sDayOfWeek = getDayOfWeek(year, monthOfYear, dayOfMonth); //Toast.makeText(CreateParty.this, "sdf", Toast.LENGTH_LONG).show(); int m_nYear = year; int m_nMonth = monthOfYear + 1; int m_nDay = dayOfMonth; Toast.MakeText(_context, "ddd", ToastLength.Long).Show(); Toast.MakeText(_context, m_nYear + "年" + m_nMonth + "月" + m_nDay + "日 ", ToastLength.Long).Show(); } private string getDayOfWeek(int tmpYear, int tmpMonth, int tmpDay) { String myWeek = null; String sYear = tmpYear.ToString(); // 取年的后两位 String sYearTwo = sYear.Substring(sYear.Length - 2); int y = tmpYear; int m = tmpMonth + 1; int c = 20; int d = tmpDay; int w = (y + (y / 4) + (c / 4) - 2 * c + (26 * (m + 1) / 10) + d - 1) % 7; switch (w) { case 0: myWeek = "日"; break; case 1: myWeek = "一"; break; case 2: myWeek = "二"; break; case 3: myWeek = "三"; break; case 4: myWeek = "四"; break; case 5: myWeek = "五"; break; case 6: myWeek = "六"; break; default: break; } return myWeek; } public void Dispose() { this.Dispose(); } public IntPtr Handle { get { return IntPtr.Zero; } } } }
以上就是小编今天的分享了,希望可以帮助到大家。